首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ruby中递归列出目录的一行程序?

在Ruby中递归列出目录的一行程序?
EN

Stack Overflow用户
提问于 2010-03-03 19:22:10
回答 9查看 68.1K关注 0票数 104

在Ruby中获取目录(不包括文件)数组的最快、最优化、一行的方法是什么?

包含文件怎么样?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-03-03 19:40:47

Dir.glob("**/*/") # for directories
Dir.glob("**/*") # for all files

除了Dir.glob(foo),您还可以编写Dir[foo] (但是Dir.glob也可以接受一个块,在这种情况下,它将生成每个路径,而不是创建一个数组)。

Ruby Glob Docs

票数 193
EN

Stack Overflow用户

发布于 2012-11-27 00:34:52

我相信这里没有一个解决方案涉及隐藏目录(例如'.test'):

require 'find'
Find.find('.') { |e| puts e if File.directory?(e) }
票数 53
EN

Stack Overflow用户

发布于 2010-03-03 19:41:58

有关目录列表,请尝试

Dir['**/']

文件列表更难,因为在Unix目录中也是一个文件,所以您需要测试类型或从返回的列表中删除其他条目的父条目。

Dir['**/*'].reject {|fn| File.directory?(fn) }

对于所有文件和目录的列表,只需

Dir['**/*']
票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2370702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档