Поиск файла в каталоге с использованием сложного шаблона
-
03-07-2019 - |
Вопрос
Я ищу библиотеку C # для получения файлов или каталога из каталога, используя сложный шаблон, подобный тому, который используется в Ant:
dir1/dir2/**/SVN/*
--> Соответствует всем файлам в каталогах SVN, которые расположены в любом месте дерева каталогов в dir1 / dir2**/test/**
--> Соответствует всем файлам, путь к которым содержит элемент test, включая test в качестве имени файла.- ...
Нужно ли мне самому это кодировать?извлечь то, что я хочу из NAnt?Или эта библиотека существует, а мои навыки работы с Google - отстой.
Directory.GetFiles(String path, String searchPattern)
не обрабатывает шаблон каталога и NDepend.Помощники.FileDirectoryPath ни то, ни другое (кстати, это отличная библиотека для манипулирования путями)
Решение
Закодировать это самостоятельно было бы не так уж сложно.
Просто используйте правильно сформулированное регулярное выражение с System.Методы ввода-вывода для построения полного пути
Другие советы
Вас устраивает определение "*" как "чего угодно, кроме косой черты", а "**" как "вообще чего угодно"?Если это так, то преобразование регулярных выражений кажется простым.
* -> [^\/]*
** -> .*
Затем нужно рекурсивно перечислить все файлы и проверить, совпадают ли их пути с регулярным выражением.