有没有人知道Ruby中是否存在现有的模块/函数来遍历文件系统目录和文件?我正在寻找类似于Python os.walk
的东西。我发现的最接近的模块是Find
,但需要一些额外的工作来进行遍历。
Python代码如下所示:
for root, dirs, files in os.walk('.'):
for name in files:
print name
for name in dirs:
print name
答案 0 :(得分:23)
以下将以递归方式打印所有文件。那你可以使用File.directory吗?查看它是目录还是文件。
Dir['**/*'].each { |f| print f }
答案 1 :(得分:9)
Find对我来说似乎很简单:
require "find"
Find.find('mydir'){|f| puts f}
答案 2 :(得分:3)
require 'pathname'
def os_walk(dir)
root = Pathname(dir)
files, dirs = [], []
Pathname(root).find do |path|
unless path == root
dirs << path if path.directory?
files << path if path.file?
end
end
[root, files, dirs]
end
root, files, dirs = os_walk('.')