C# 使用 EnumerateDirectories 列出所有 "leaf"子目录

标签 c# directory enumerate

大家早上好 我有一个文件夹,其中包含数千个不同深度的子目录。我需要列出所有不包含子目录的目录(众所周知的“行尾”)。如果它们包含文件就可以了。有没有办法用 EnumerateDirectories 做到这一点?

例如,如果返回一个完全递归的 EnumerateDirectories:

/files/
/files/q
/files/q/1
/files/q/2
/files/q/2/examples
/files/7
/files/7/eb
/files/7/eb/s
/files/7/eb/s/t

我只对:

/files/q/1
/files/q/2/examples
/files/7/eb/s/t

最佳答案

这应该有效:

var folderWithoutSubfolder = Directory.EnumerateDirectories(root, "*.*", SearchOption.AllDirectories)
     .Where(f => !Directory.EnumerateDirectories(f, "*.*", SearchOption.TopDirectoryOnly).Any());

关于C# 使用 EnumerateDirectories 列出所有 "leaf"子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17809306/

相关文章:

c# - Entity Framework 数据库首先自动验证属性的最大长度

c# - 检查 HangFire.JobStorage 是否被实例化

windows - 如何使用 Delphi 检查字符串是否是有效的 Windows 文件夹名称?

.net - 是否有一个对话框可以同时选择多个文件和文件夹的混合?

python - 如何在 python 中搜索列表并打印我的条件所在列表中的哪个位置?

javascript - 移动 .aspx 文件时的 onclick 属性

c# - 当我尝试监听端口时,请求的地址在其上下文中无效

python - 如何使用 python 更改用户的 shell 当前目录? (Ubuntu/Linux)

delphi - delphi中枚举注册表子项

python - python中的枚举是懒惰的吗?