我发现此代码从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();