C# EnvDTE - Alle Ordner eines Projektes (rekursiv)

Thaxll'ssillyia

Captain
Registriert
Dez. 2007
Beiträge
3.533
Hallo Community!

Ich arbeite derzeit beruflich an einem AddIn für VS 2010.
Dieses Codegenerierungs-Tool greift unter anderem auf die Projektstruktur des aktuellen Projektes zu.

Code:
foreach (ProjectItem projectItem in project.ProjectItems) {
     //blabla
}

Leider liefert mir diese Schleife nur die Dateien, die im Hauptverzeichnis des Projektes liegen.

Project besitzt keine Eigenschaft "Folders" oder "Directories". Ich würde gerne alle Dateien des Projektes bzw. der Ordner des Projektes empfangen (am Besten rekursiv), nur fehlt mir irgendwie eine Property, um die Ordner des Projektes zu listen.

Weiß jemand Rat? Vielen Dank für Hilfe!

Gruß Thax
 
Ich glaube du suchst nach DirectoryInfo (aus System.IO).

Code:
System.IO.DirectoryInfo bla = new System.IO.DirectoryInfo(projectItem.FullPath())

dann hast du einen Ordner, den du Rekursiv durchsuchen kannst ;). Dann kommst du mit GetDirectories und GetFiles an die Dateien und Ordner im aktuellen Ordner.
 
Geht so in diese Richtung, sprich über das Dateisystem. Bei den ProjectItems sollten auch die Ordner dabei sein.

Code:
from item in projectItems
where item.Kind == EnvDTE.Constants.vsProjectItemKindPhysicalFolder
   && item.Properties != null
   && Directory.Exists(item.Properties.Item("LocalPath").Value.ToString())
select item;
 
für sowas hab ich die Shell32.dll benutzt.
ist leider ein privatprojekt deshalb kann ich den Coder erst heute abend posten...
 
Zurück
Oben