本文介绍了递归的Ruby函数列表文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要一个递归函数来列出文件夹中的文件:
i need a recursive function to list files in a folder:
def procdir(dirname)
data = ''
Dir.foreach(dirname) do |dir|
dirpath = dirname + '/' + dir
if File.directory?(dirpath) then
if dir != '.' && dir != '..' then
#puts "DIRECTORY: #{dirpath}" ;
procdir(dirpath)
end
else
data += dirpath
end
end
return data
end
但结果:为空
推荐答案
Stdlib 将**
glob赋予Dir#glob
会重复出现.
Stdlib Dir#glob
recurses when you give it the **
glob.
def procdir(dir)
Dir[ File.join(dir, '**', '*') ].reject { |p| File.directory? p }
end
这篇关于递归的Ruby函数列表文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!