C# Linq中的目录和子目录过滤器
我需要列出一个路径中的所有目录。我只需要得到最后一个子目录路径,而不是所有路径 i、 e.为了 pathbase/2016/01 我不需要pathbase/2016,但需要pathbase/2016/01 现在我使用以下代码:C# Linq中的目录和子目录过滤器,c#,linq,directory-listing,C#,Linq,Directory Listing,我需要列出一个路径中的所有目录。我只需要得到最后一个子目录路径,而不是所有路径 i、 e.为了 pathbase/2016/01 我不需要pathbase/2016,但需要pathbase/2016/01 现在我使用以下代码: List<string> dirs = new List<string>(Directory.EnumerateDirectories(pathBase)); string[] entries = System.IO.Directory.GetDi
List<string> dirs = new List<string>(Directory.EnumerateDirectories(pathBase));
string[] entries = System.IO.Directory.GetDirectories(pathBase, "*",
SearchOption.AllDirectories);
var listDir = from dir
in entries
return listDir.ToList();
List dirs=新列表(Directory.EnumerateDirectories(pathBase));
string[]entries=System.IO.Directory.GetDirectories(pathBase,“*”,
SearchOption.AllDirectories);
var listDir=from dir
在条目中
返回listDir.ToList();
我可以在Linq中使用什么类型的筛选器来排除此目录
谢谢。你是说你需要所有的leafs目录(没有子目录的目录)吗 如果是这样的话,这应该可以做到
// First off, don't use GetDirectories on the static Directory class, it returns a string path and not a DirectoryInfo which isn't very usefull here, instead create a DirectoryInfo and go from there:
var RootDirectory = new DirectoryInfo(pathBase);
// Then queries all of it's subdirectories and filter on those
var listDir = RootDirectory.GetDirectories("*",SearchOption.AllDirectories)
.Where(dir=>!dir.GetDirectories().Any())
.ToList();
你的意思是你需要所有的leafs目录(没有子目录的目录) 如果是这样的话,这应该可以做到
// First off, don't use GetDirectories on the static Directory class, it returns a string path and not a DirectoryInfo which isn't very usefull here, instead create a DirectoryInfo and go from there:
var RootDirectory = new DirectoryInfo(pathBase);
// Then queries all of it's subdirectories and filter on those
var listDir = RootDirectory.GetDirectories("*",SearchOption.AllDirectories)
.Where(dir=>!dir.GetDirectories().Any())
.ToList();
所以你只需要叶目录?所以你只需要叶目录?太好了。这是工作。如何获取名称和完整路径?我是linq的新手。Thanks@user1823851您已经拥有了所有这些,listDir中的每个元素都是一个DirectoryInfo,它具有您想要的所有属性,这与您最初发布的内容(只返回字符串)不同。如果它回答了您的原始问题,请不要忘记将其标记为答案question@user1823851在用于向上投票的向上和向下箭头旁边有一个“V”,您可以单击以接受回答。这是工作。如何获取名称和完整路径?我是linq的新手。Thanks@user1823851您已经拥有了所有这些,listDir中的每个元素都是一个DirectoryInfo,它具有您想要的所有属性,这与您最初发布的内容(只返回字符串)不同。如果它回答了您的原始问题,请不要忘记将其标记为答案question@user1823851在用于向上投票的向上和向下箭头旁边有一个“V”,您可以单击以接受答案