【问题标题】:Getting directory listing in Cake build script在 Cake 构建脚本中获取目录列表
【发布时间】:2017-06-23 16:05:28
【问题描述】:

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

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

我在Directory Operations referenceDirectoryPathDirectoryAliases 中没有看到任何明显的内容。

解决方法

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

使用带有参数的GlobbingAliases.GetDirectories 方法来匹配所有内容,但这似乎有点不合时宜。 (它也有一些尝试获取子目录的怪癖,但这将是一个单独的问题,我将进行调查。)

var allDirectories = GetDirectories(@".\*");

另外,我有幸直接访问System.IO.Directory 方法。

var allDirectories = System.IO.Directory.GetDirectories(".", "*", System.IO.SearchOption.TopDirectoryOnly).Select (d => new DirectoryPath(d));

【问题讨论】:

    标签: cakebuild


    【解决方案1】:

    您也可以使用Context.FileSystem,它有一个GetDirectory,它返回一个IDirectory,它有一个GetDirectories 方法。

    使用 Cake 的抽象的优点是,即模块可以提供替代实现,即系统上的长路径支持不支持常规 .Net

    【讨论】:

    • 缺少阅读源代码,是否有 GetDirectories 方法的 filter 参数的参考/指南?即使是一个使用示例也可能会有所帮助。
    • 另外,什么时候应该使用IDirectoryDirectoryPath?我使用DirectoryPath的所有地方都应该重写为目标IDirectory吗?
    • IDirectory 是“低级”,您将主要使用 globber GetDirectories 和 DirectoryPath,这也是大多数别名用于参数的。
    猜你喜欢
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2016-03-30
    相关资源
    最近更新 更多