6

我怎样才能让 Directory.GetFiles 只显示以数值开头的文件(例如 1abc.pdf);

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

2 回答 2

4

要获取以任何数值开头的文件,无论位数如何,都可以使用正则表达式:

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
于 2012-03-11T07:39:05.140 回答
3

无法在搜索模式中直接指定这一点。它的功能非常有限(主要支持*通配符)。完成此操作的最佳方法是过滤*.pdf,然后使用 LINQ 查询过滤以数字开头的查询

Directory
  .GetFiles(@"c:\mydir", "*.pdf")
  .Where(x => Char.IsDigit(Path.GetFileName(x)[0]));
于 2012-03-11T07:30:10.823 回答