如何在C#中根据RegEx查找文件

我需要获取某些驱动器上具有匹配特定模式的路径的文件列表,例如FA \ d \ d \ d \ d.xml其中\ d是数字(0,1,2..9)。 所以文件可以有像FA5423.xml这样的名称。

这样做最有效的名字是什么?

你在使用C#3吗?

Regex reg = new Regex(@"^FA[0-9]{4}\.xml$"); var files = Directory.GetFiles(yourPath, "*.xml").Where(path => reg.IsMatch(path)); 

你可以这样做:

 System.IO.Directory.GetFiles(@"C:\", "FA????.xml", SearchOption.AllDirectories); 

然后从你的结果只是迭代它们并validation它们对你的正则表达式,即? 名称中的字符都是数字

使用Directory API查找FA????.xml ,并通过正则表达式filter运行结果列表:

 var fa = from f in Directory.GetFiles("FA????.xml") where Regex.Match(f, "FA\d\d\d\d\.xml") select f;