Найти файлы, которые соответствуют нескольким шаблонам в C#
Метод System.IO.Directory.GetFiles позволяет легко искать файлы в каталоге, соответствующем шаблону. К сожалению, он может искать только файлы, соответствующие одному шаблону. Например, если вы хотите найти файлы, соответствующие шаблонам * .bmp, * .gif, * .jpg и * .png, вам не повезло.
Метод FindFiles, показанный в следующем коде, ищет файлы, которые соответствуют нескольким шаблонам.
// Поиск файлов, соответствующих шаблонам. private List<string> FindFiles(string dir_name, string patterns, bool search_subdirectories) { // Создаем список результатов. List<string> files = new List<string>(); // Получить шаблоны. string[] pattern_array = patterns.Split(';'); // Поиск. SearchOption search_option = SearchOption.TopDirectoryOnly; if (search_subdirectories) search_option = SearchOption.AllDirectories; foreach (string pattern in pattern_array) { foreach (string filename in Directory.GetFiles( dir_name, pattern, search_option)) { if (!files.Contains(filename)) files.Add(filename); } } // Сортировать. files.Sort(); // Вернуть результат. return files; }