Directory.GetFiles:仅显示以数字值开头的文件

时间:2012-03-11 07:23:37

标签: c# getfiles

如何让Directory.GetFiles只显示以数字值开头的文件(例如1abc.pdf);

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

无法在搜索模式中直接指定此项。它的功能非常有限(主要支持*通配符)。实现此目的的最佳方法是过滤*.pdf,然后使用LINQ查询过滤到以数字开头的那些

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