Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq中的目录和子目录过滤器_C#_Linq_Directory Listing - Fatal编程技术网

C# Linq中的目录和子目录过滤器

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

我需要列出一个路径中的所有目录。我只需要得到最后一个子目录路径,而不是所有路径

i、 e.为了

pathbase/2016/01

我不需要pathbase/2016,但需要pathbase/2016/01

现在我使用以下代码:

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”,您可以单击以接受答案