Frage

Ich bin für eine C # -Bibliothek für Dateien oder das Verzeichnis aus einem Verzeichnis mit einem komplexen Muster wie die verwendet in Ant bekommen:

  • dir1/dir2/**/SVN/* -> Spiele alle Dateien in SVN-Verzeichnisse, die überall im Verzeichnisbaum unter dir1 / dir2 befinden
  • **/test/**. -> Spiele alle Dateien, die ein Testelement in ihrem Weg, einschließlich Tests als Dateiname
  • ...

Muss ich es selbst codieren? extrahieren, was ich von Nant will? Oder diese Bibliothek vorhanden ist, und mein Google Geschick saugt.

Directory.GetFiles(String path, String searchPattern) behandelt nicht Verzeichnismuster und NDepend.Helpers.FileDirectoryPath weder (es ist eine große Bibliothek für Pfad Manipulation durch die Art und Weise)

War es hilfreich?

Lösung

es Coding selbst würde nicht so schwer sein.

Verwenden Sie einfach einen richtig formulierte regulären Ausdruck mit System.IO Methoden, um den vollständigen Pfad zu bauen

Andere Tipps

Sind Sie bequem mit der Definition von „*“ als „alles andere als Schrägstrich“ und „**“ als „nichts“? Wenn ja, scheint die Regex Konvertierung einfach.

*   -> [^\/]*
**  -> .*

Dann ist es eine Frage der rekursiv alle Dateien aufzählt, und prüfen, ob sich ihre Wege die Regex entsprechen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top