Поиск файла в каталоге с использованием сложного шаблона

StackOverflow https://stackoverflow.com/questions/158460

Вопрос

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

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

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

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

Это было полезно?

Решение

Закодировать это самостоятельно было бы не так уж сложно.

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top