Поиск файла в каталоге по сложному шаблону - PullRequest
1 голос
/ 01 октября 2008

Я ищу библиотеку C # для получения файлов или каталогов из каталога, используя сложный шаблон, подобный тому, который используется в Ant:

  • dir1/dir2/**/SVN/* -> Сопоставляет все файлы в каталогах SVN, которые расположены в любом месте дерева каталогов в каталоге dir1 / dir2
  • **/test/** -> Сопоставляет все файлы, в которых есть тестовый элемент, включая test в качестве имени файла.
  • ...

Нужно ли самому кодировать это? извлечь то, что я хочу от NAnt? Или эта библиотека существует, и мой навык Google отстой.

Directory.GetFiles(String path, String searchPattern) не обрабатывает шаблон каталогов и NDepend.Helpers.FileDirectoryPath (также, кстати, отличная библиотека для манипулирования путями)

Ответы [ 2 ]

1 голос
/ 01 октября 2008

Кодирование это не было бы так сложно.

Просто используйте правильно сформулированное регулярное выражение с методами System.IO для построения полного пути

0 голосов
/ 05 октября 2008

Вам удобно определять "*" как "что-нибудь, кроме косой черты" и "**" как "что-нибудь вообще"? Если это так, преобразование регулярных выражений кажется простым.

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

Тогда нужно рекурсивно перечислить все файлы и проверить, соответствуют ли их пути регулярному выражению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...