是否可以在Directory.GetFiles中指定目录通配符?

时间:2012-10-08 10:16:23

标签: .net file directory

我有一个目录结构要筛选,我需要能够指定顶级文件夹,一个典型的例子是:

c:\folder1\1\targetfolder
c:\folder1\2\targetfolder
c:\folder1\3\targetfolder
c:\folder1\4\targetfolder

我想获取名为 targetfolder 的文件夹中的每个文件,指定这似乎失败了:

Directory.GetFiles("c:\folder1\*\targetfolder");

有没有快速简便的方法来实现这一目标?

2 个答案:

答案 0 :(得分:0)

尝试使用此功能,但如果根路径中的文件或文件夹具有相同的模式,则可能会出现误报

var files = Directory.GetFiles("c:\\folder1", "*.*", 
        SearchOption.AllDirectories).Where(n => n.Contains("\\targetfolder\\"));

答案 1 :(得分:0)

这对我有用,如果您有名为targetfolder或类似的文件,则没有副作用。

Directory.GetDirectories(
    @"c:\folder1\",
    @"targetfolder",
    SearchOption.AllDirectories)
    .SelectMany(dir => Directory.GetFiles(dir, "*", SearchOption.TopDirectoryOnly))

这将为您提供仅存在于targetfolder

文件夹中名为c:\folder1\的fodler中的文件