我想返回“SomeFolder”目录中所有子目录的列表,不包括“Admin”和“Templates”目录。
我有以下文件夹结构(简化):
C:\inetpub\wwwroot\MyWebsite\SomeFolder\RandomString
C:\inetpub\wwwroot\MyWebsite\SomeFolder\RandomString
C:\inetpub\wwwroot\MyWebsite\SomeFolder\RandomString
C:\inetpub\wwwroot\MyWebsite\SomeFolder\Admin
C:\inetpub\wwwroot\MyWebsite\SomeFolder\Templates
“SomeFolder”可以包含不同数量的“RandomString”文件夹(从 ~10 到 ~100)。
这是我尝试过的:
var dirs = Directory.GetDirectories(Server.MapPath(".."))
.Where(s => !s.EndsWith("Admin") || !s.EndsWith("Templates"));
foreach (string dir in dirs)
{
lit.Text += Environment.NewLine + dir;
}
这将返回没有过滤掉“管理员”和“模板”的文件夹的完整列表(如上所示)。
有趣的是,如果我将 LINQ.Where
子句更改为include,而不是exclude, 'Admin' 和 'Templates' 它可以工作,这意味着它只返回 'Admin' 和 'Templates' 的路径。
.Where(s => s.EndsWith("Admin") || s.EndsWith("Templates"));
如果 LINQ 不是解决方案,有没有办法使用 GetDirectories SearchPattern 过滤掉目录?