我有一个目录结构要筛选,我需要能够指定顶级文件夹,一个典型的例子是:
c:\folder1\1\targetfolder
c:\folder1\2\targetfolder
c:\folder1\3\targetfolder
c:\folder1\4\targetfolder
我想获取名为 targetfolder 的文件夹中的每个文件,指定这似乎失败了:
Directory.GetFiles("c:\folder1\*\targetfolder");
有没有快速简便的方法来实现这一目标?
答案 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中的文件