我需要获取某个驱动器上路径匹配特定模式的文件列表,例如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));
*.*
也没有意义。 - Phil GanSystem.IO.Directory.GetFiles(@"C:\", "FA????.xml", SearchOption.AllDirectories);
然后从您的结果中遍历它们,并根据您的正则表达式验证它们,即验证名称中的?
字符是否都是数字。
FA????.xml
,并将结果列表通过正则表达式过滤:var fa = from f in Directory.GetFiles("FA????.xml")
where Regex.Match(f, "FA\d\d\d\d\.xml")
select f;