Directory.GetFiles: показывать только файлы, начинающиеся с числового значения
Как я могу заставить Directory.GetFiles показывать только файлы, начинающиеся с числового значения (например, 1abc.pdf);
Directory.GetFiles(@"C:/mydir", "0-9*.pdf")
2 ответа
Решение
Чтобы получить файлы, которые начинаются с любого числового значения, независимо от количества цифр, вы можете использовать регулярное выражение:
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
Нет способа указать это непосредственно в шаблоне поиска. Его возможности довольно ограничены (в основном поддерживает *
подстановочные). Лучший способ сделать это - отфильтровать *.pdf
а затем использовать запрос LINQ для фильтрации к тем, которые начинаются с цифры
Directory
.GetFiles(@"c:\mydir", "*.pdf")
.Where(x => Char.IsDigit(Path.GetFileName(x)[0]));