Visual Studio-Makro: Finden Sie Dateien, die nicht im Projekt enthalten sind?

8

Ich möchte ein Makro schreiben, um durch die Dateien in meinem Projektverzeichnis zu crawlen und Dateien zu finden, die nicht im Projekt enthalten sind.

Beim Herumspielen mit dem DTE-Objekt sehe ich, dass das Project -Objekt ProjectItems ; Wenn ein ProjectItem ein Verzeichnis darstellt, hat es seine eigene ProjectItems -Auflistung. Das gibt mir alle Dateien, die in dem Projekt enthalten sind.

So konnte ich rekursiv durch jede ProjectItems-Auflistung crawlen und für jedes ProjectItem, das ein Verzeichnis ist, prüfen, ob sich Dateien im Dateisystem befinden, die kein entsprechendes ProjectItem haben. Das scheint jedoch plump zu sein.

Irgendwelche Ideen für eine einfachere Vorgehensweise?

    
Herb Caudill 04.01.2010, 15:26
quelle

4 Antworten

8

Danke an @JaredPar und @lpthnc, dass sie mich in die richtige Richtung weisen. Ich benutzte einen Ansatz, der dem ähnlich war, was @JaredPar oben skizziert hat. Hier ist mein Arbeitsmakro FWIW.

%Vor%     
Herb Caudill 04.01.2010, 16:50
quelle
11

Hier ist die C # -Version Ihres Codes:

%Vor%     
Josh 26.02.2012 22:19
quelle
2

Der Ansatz, den ich wählen würde, ist

  1. Auflisten des Dateisystems nach allen Dateien
  2. Überprüfen Sie, ob der angegebenen Datei ein Projekt zugeordnet ist.

Hier ist ein kurzer Teil des Beispielcodes

%Vor%     
JaredPar 04.01.2010 15:43
quelle
0

Ich würde mit PowerShell gehen. Das PowerShell-Skript in meinem anderen Beitrag wird dies für Sie tun. Das Skript ruft die Liste der enthaltenen Dateien aus der Projektdatei ab und vergleicht sie mit den Dateien auf der Festplatte. Sie erhalten die Dateien, die sich auf der Festplatte befinden, aber nicht im Projekt enthalten sind. Sie können sie entweder löschen oder als Löschvorgänge für TFS anhängen.

Ссылка

    
jovball 02.05.2014 05:12
quelle