J'essaie d'obtenir une liste de projets et de dossiers en dessous. Je suis en mesure d'obtenir les projets et projets-éléments à l'aide:Comment obtenir des dossiers sous projets?
DTE2 dte2;
dte2=(DTE2)System.Runtime.InteropServices.Marshal.
GetActiveObject("VisualStudio.DTE.10.0");
Projects projects = dte2.Solution.Projects;
Ensuite, je suis à travers les articles itérer du projet et obtenir le « genre » de l'article. Mais il montre seulement GUID. J'ai besoin de savoir si l'article est un dossier. Comment je fais ça?
Ref:
var item = projects.GetEnumerator();
while (item.MoveNext())
{
var project = item.Current as Project;
for(i=1;i<project.ProjectItems.Count;i++)
{
string itemType = project.ProjectItems.Item(i).Kind;
}
}
EDIT:
Actuellement, je suis en utilisant une solution de contournement:
string location = project.ProjectItems.Item(i).get_FileNames(1);
if (location.EndsWith(@"\"))
{
// It is a folder E.g C:\\Abc\\Xyz\\
}
Je viens de remarquer que la solution que j'ai fourni est pour SolutionFolders qui peuvent avoir un GUID différent de dossiers réguliers. Cependant, je m'attendrais à ce que les dossiers ordinaires partagent le même GUID qui, s'il est différent du GUID de SolutionFolder, vous pouvez utiliser cette solution de contournement pour obtenir, puis stocker en tant que constante. – thudbutt