Ruby Directory Glob递归绝对路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby Directory Glob递归绝对路径相关的知识,希望对你有一定的参考价值。

我想要获得绝对路径的Dir.glob:

path = "/Users/ken/templates"
scaffold = Dir.glob("#{path}/*.erb", File::FNM_DOTMATCH)
p scaffold.inspect

这是我的目录结构:

/Users/ken/templates/test.erb
/Users/ken/templates/test2.erb
/Users/ken/templates/app/one.erb
/Users/ken/templates/app/two.erb

当我在目录上运行时,我只获取目录根目录中的文件:

"["/Users/ken/farmstead/test.erb", "/Users/ken/farmstead/test2.erb"]"

但是没有app子目录的条目。

如何让Glob在绝对路径上递归?

答案

要进入子目录,需要指示Dir#glob进入子目录:

#                            ⇓⇓⇓
scaffold = Dir.glob("#{path}/**/*.erb", File::FNM_DOTMATCH)

从我链接的文档引用:

** 以递归方式匹配目录。

以上是关于Ruby Directory Glob递归绝对路径的主要内容,如果未能解决你的问题,请参考以下文章

在 Ruby 中递归列出目录的单线器?

IO(File 递归)

Python - 任何将相对路径转换为绝对路径的方法?

php 遍历文件夹文件问题

python 里面的glob模块是怎么用的

python 笔记:glob (支持通配符的文件操作)