是否有一种简单的方法来获取给定目录路径的目录列表(例如 DirectoryPathCollection)?

我希望能够轻松获取当前目录以及给定路径的所有目录。

我在 Directory Operations reference 中没有看到任何明显的东西,也没有在 DirectoryPathDirectoryAliases 中看到。

解决方法

到目前为止,我已经找到了几种有效的方法。

使用 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/

10-13 08:58
查看更多