Поиск файла / каталога - PullRequest
0 голосов
/ 21 марта 2011

Любая идея, как легко поддерживать шаблоны поиска файлов в вашем программном обеспечении, например **, *,?

Например, подпапка / ** /? Svn - поиск по всем уровням подпапки для поиска файлов / папок, заканчивающихсявсего "svn" 4 символа.

полное описание: http://nant.sourceforge.net/release/latest/help/types/fileset.html

Ответы [ 3 ]

2 голосов
/ 21 марта 2011

Если вы загрузите каталог как информацию о каталоге, например,

DirectoryInfo directory = new DirectoryInfo(folder);

, тогда выполните поиск файлов, подобных этому

IEnumerable<FileInfo> fileInfo = directory.GetFiles("*.svn", SearchOption.AllDirectories);

, и вы получите список fileInfo, который вы можетеманипулируя

, чтобы получить все подкаталоги, вы можете сделать то же самое, например,

IEnumerable<DirectoryInfo> dirInfo = directory.GetDirectories("*svn", SearchOption.AllDirectories);

в любом случае, что должно дать представление о том, как я это сделаю.Кроме того, поскольку fileInfo и dirInfo являются IEnumerable, вы можете добавить linq, где запросы и т. Д., Чтобы отфильтровать результаты

1 голос
/ 21 марта 2011

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

Еще одна хитрость может заключаться в том, чтобы порождать поток для каждой папки или набора папок и заставлять поток продолжить проверку еще одного уровня вниз. Это может быть полезно для ускорения процесса.

Причина, по которой я это говорю, заключается в том, что это очень сложный процесс проверки папок и т. Д. Так много потоков позволит вам быстрее отправлять больше запросов к диску, что повышает скорость.

0 голосов
/ 21 марта 2011

Это может звучать глупо, но вы рассматривали возможность загрузки исходного кода nant, чтобы посмотреть, как они это сделали?

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