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

C# Directory.GetFiles:仅显示以数值开头的文件,c#,getfiles,C#,Getfiles,如何使Directory.GetFiles仅显示以数值开头的文件(例如1abc.pdf) 无法在搜索模式中直接指定这一点。它的功能非常有限(主要支持*通配符)。实现这一点的最佳方法是过滤*.pdf,然后使用LINQ查询过滤以数字开头的查询 Directory .GetFiles(@"c:\mydir", "*.pdf") .Where(x => Char.IsDigit(Path.GetFileName(x)[0])); 要获取以任何数字值开头的文件,而不考虑位数,可以使用正则表

如何使Directory.GetFiles仅显示以数值开头的文件(例如1abc.pdf)


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

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

要获取以任何数字值开头的文件,而不考虑位数,可以使用正则表达式:

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
var files=Directory.GetFiles(@“c:\mydir”,“*.pdf”)
.Where(file=>Regex.IsMatch(Path.GetFileName(file),“^[0-9]+”));

//.ToArray()如果我必须将它合并到我的“real”表达式中会怎么样,它是
var currentPage=Directory.GetFiles(filePath,startChar+“*.pdf”).Skip((pageNum-1)*pageSize.Take(pageSize)。选择(path=>newfileinfo(path)).ToArray()?背后的逻辑是我有一个字母寻呼机(a、B、C…等,还有一个0-9链接),因此我希望能够选择列表中显示的特定起始字符(字母或数字)。以上仅适用于阿尔法字符。这非常有效-thx!那么,你知道我如何将它合并到一个同时接受字母和数字查找的表达式中吗。IE我在一个
var currentPage=Directory.GetFiles(filePath,startChar+“*.pdf”).Skip((pageNum-1)*pageSize.Take(pageSize)。选择(path=>newfileinfo(path)).ToArray()。使用where子句添加了
var currentPage=Directory.GetFiles(filePath,startChar+“*.pdf”).where(file=>Regex.IsMatch(Path.GetFileName(file),“^[0-9]+”).Skip((pageNum-1)*pageSize.Take(pageSize)。选择(Path=>newfileinfo(Path)).ToArray()
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