有什么办法可以使用LINQ命令like this从SearchOption中排除某些目录

string path = "C:\SomeFolder";

var s1 = Directory.GetFiles(path , "*.*", SearchOption.AllDirectories);

var s2 = Directory.GetDirectories(path , "*.*", SearchOption.AllDirectories);

该路径由其中包含某些文件的Sub1和Sub2文件夹组成。我需要从目录搜索中排除它们。

谢谢

这工作:
string[] exceptions = new string[] { "c:\\SomeFolder\\sub1",
"c:\\SomeFolder\\sub2" };

var s1 = Directory.GetFiles("c:\\x86", "*.*",
SearchOption.AllDirectories).Where(d => exceptions.All(e =>
!d.StartsWith(e)));

This帮助了异常

最佳答案

不,据我所知。但是您可以使用非常简单的LINQ在一行中完成此操作。

var s1 = Directory.GetFiles(path , "*.*", SearchOption.AllDirectories).Where(d => !d.StartsWith("<EXCLUDE_DIR_PATH>")).ToArray();

您也可以轻松地组合多个排除DIR。

10-08 16:01