Как я могу заставить Directory.GetFiles показывать только файлы, начинающиеся с числового значения (например, 1abc.pdf);Directory.GetFiles: Показать только файлы, начинающиеся с числового значения
Directory.GetFiles(@"C:/mydir", "0-9*.pdf")
Как я могу заставить Directory.GetFiles показывать только файлы, начинающиеся с числового значения (например, 1abc.pdf);Directory.GetFiles: Показать только файлы, начинающиеся с числового значения
Directory.GetFiles(@"C:/mydir", "0-9*.pdf")
Чтобы получить файлы, которые начинаются с любой числового значения, независимо от количества цифр, вы могли бы использовать регулярное выражение:
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]));
что делать, если я должен был включить это в мое «реальное» выражение, которое 'вар CurrentPage = Directory.GetFiles (Filepath, StartChar +«* .pdf») .Skip ((pageNum - 1) * pageSize) .Take (pageSize) .Select (path => new FileInfo (path)). ToArray(); '? Логика заключается в том, что у меня есть альфа-пейджер (A, B, C .. и т. Д. И ссылка 0-9), поэтому я хотел бы иметь возможность выбрать конкретный startchar (альфа-или числовой), который показан в списке , Вышеуказанное прекрасно работает с альфа-символами. – brother
Это отлично работает - thx! Итак, вы знаете, как я мог бы включить это в одно выражение, которое принимает как альфа, так и числовой поиск. IE: у меня есть следующая работа в одном: var currentPage = Directory.GetFiles (filePath, startChar + "* .pdf"). Skip ((pageNum - 1) * pageSize) .Take (pageSize). Выберите (path => new FileInfo (. путь)) ToArray() '. С вами, где предложение добавлено 'var currentPage = Directory.GetFiles (filePath, startChar +" * .pdf "). Где (файл => Regex.IsMatch (Path.GetFileName (файл),"^[0-9] + ")) .Skip ((pageNum - 1) * pageSize) .Take (pageSize) .Выберите (path => new FileInfo (путь)). ToArray(); '. – brother