Directory.GetFiles使用filePattern获取多个文件

时间:2014-03-21 20:32:02

标签: c# c#-4.0 c#-3.0

如何设置模式以返回多个文件,但仅限于我正在寻找的文件。

我有一个包含文件的目录:

marks v1.csv,
marks_east.csv
marks.csv
marks_west.csv
marks23.csv
marks24.csv

我需要使用filePattern marks.csv,marks_east.csv,marks_west.csv

之前我使用的是确切的文件名,因为我只对一个文件感兴趣。现在我想通过修改filePattern来重用相同的过程。

var files = Directory.GetFiles(sourceDirectory, filePattern).OrderBy(d => new FileInfo(d).CreationTime);

1 个答案:

答案 0 :(得分:0)

Directory.GetFiles支持通配符。

var files = Directory.GetFiles(sourceDirectory, "marks_*.csv").OrderBy(d => new FileInfo(d).CreationTime);

但这不会捕获marks.csv。 Regex非常适合这个,但是GetFiles函数不支持正则表达式。一个快速(有点hacky)的解决方案可能是:

var files = Directory.GetFiles(sourceDirectory, "marks_*.csv");
if (File.Exists(sourceDirectory+"marks.csv"))
    files.Insert(0, "marks.csv");
files.OrderBy(d => new FileInfo(d).CreationTime);