Несколько фильтров с Directory.GetFiles? - PullRequest
0 голосов
/ 05 января 2011

Я пытаюсь использовать несколько фильтров с командой Directory.GetFiles ().

Итак, я хочу сопоставить файлы .html и .css.Я использую это:

Directory.GetFiles(path,"*.html|*.css");

Я не вижу никакой документации, однако, что это поддерживается, и это в итоге не соответствует ни HTML, ни CSS файлам.Я что-то упускаю?

Ответы [ 3 ]

3 голосов
/ 05 января 2011

Функция Directory.GetFiles не поддерживает несколько фильтров.Мое решение:

string patter = "*.jpg|*.png|*.gif";
string[] filters = patter.Split('|');
foreach(string filter in filters )
{
  // call Directory.GetFiles(path, filter) here;
}
1 голос
/ 22 марта 2013

Существует также решение для спуска, которое позволяет избежать циклов foreach (с помощью Linq):

string[] filters = new[]{"*.jpg", "*.png", "*.gif"};
string[] filePaths = filters.SelectMany(f => Directory.GetFiles(basePath, f)).ToArray();
0 голосов
/ 05 января 2011

Это было задано ранее (https://stackoverflow.com/questions/163162), и было предложено решение с использованием LINQ для фильтрации результатов

...