Directory.GetFiles: показывать только файлы, начинающиеся с числового значения - PullRequest
6 голосов
/ 11 марта 2012

Как мне заставить Directory.GetFiles показывать только файлы, начинающиеся с числового значения (например, 1abc.pdf);

Directory.GetFiles(@"C:/mydir", "0-9*.pdf")

Ответы [ 2 ]

3 голосов
/ 11 марта 2012

Чтобы получить файлы, начинающиеся с любого числового значения, независимо от количества цифр, вы можете использовать регулярное выражение:

var files = Directory.GetFiles(@"c:\mydir", "*.pdf")
                     .Where(file => Regex.IsMatch(Path.GetFileName(file), "^[0-9]+"));
                     //.ToArray() <-add if you want a string array instead of IEnumerable
3 голосов
/ 11 марта 2012

Нет способа указать это непосредственно в шаблоне поиска.Его возможности довольно ограничены (в основном поддерживает подстановочный знак *).Лучший способ сделать это - отфильтровать по *.pdf, а затем использовать запрос LINQ для фильтрации по тем, которые начинаются с цифры

Directory
  .GetFiles(@"c:\mydir", "*.pdf")
  .Where(x => Char.IsDigit(Path.GetFileName(x)[0]));
...