是否有一种简单的方法来获取给定目录路径的目录列表(例如 DirectoryPathCollection)?
我希望能够轻松获取当前目录以及给定路径的所有目录。
我在 Directory Operations reference 中没有看到任何明显的东西,也没有在 DirectoryPath 或 DirectoryAliases 中看到。
解决方法
到目前为止,我已经找到了几种有效的方法。
使用 GlobbingAliases.GetDirectories
方法和一个参数来匹配所有,但这似乎有点小技巧。 (它也有一些尝试获取子目录的怪癖,但这将是我将调查的一个单独问题。)
var allDirectories = GetDirectories(@".\*");
此外,我有幸直接进入
System.IO.Directory
方法。var allDirectories = System.IO.Directory.GetDirectories(".", "*", System.IO.SearchOption.TopDirectoryOnly).Select (d => new DirectoryPath(d));
最佳答案
你也可以使用 Context.FileSystem 它有一个 GetDirectory 它返回一个 IDirectory 它有一个 GetDirectories 方法。
使用 Cake 抽象的优点是,模块可以提供替代实现,即在不支持常规 .Net 的系统上支持长路径
关于cakebuild - 在 Cake 构建脚本中获取目录列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44725780/