2

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

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

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

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

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

4

2 回答 2

0

试过这个并且有效,但如果你的根路径中有文件或文件夹具有相同的模式,你可能会得到误报

var files = Directory.GetFiles("c:\\folder1", "*.*", 
        SearchOption.AllDirectories).Where(n => n.Contains("\\targetfolder\\"));
于 2012-10-08T10:23:37.347 回答
0

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

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

这将为您提供仅存在于文件夹中命名targetfolder的文件夹中的文件c:\folder1\

于 2012-10-08T10:43:29.783 回答