我发现此代码从DirectoryInfo中获取文件数组:

FileInfo[] fileInfoArray = di.EnumerateFiles().Where(f => extensions.Contains(f.Extension.ToLower())).ToArray();


但是它仅搜索DirectoryInfo路径的直接子代。也就是说,它不包括孙辈。

我想我需要在某处添加SearchOption.AllDirectories参数,但是在哪里?

我试过了 :

di.EnumerateFiles(SearchOption.AllDirectories).Where(f => extensions.Contains(f.Extension.ToLower())).ToArray();


但这会产生错误。

那么,如何搜索包含所有子目录的模式?

谢谢你的帮助 !

最佳答案

看一下DirectoryInfo.EnumerateFiles的重载-没有重载仅取一个SearchOption,但是可以给出一个字符串和一个SearchOption

var files = di.EnumerateFiles("*", SearchOption.AllDirectories)
              .Where(f => extensions.Contains(f.Extension.ToLower()))
              .ToArray();

09-13 12:55