在ruby中我们要实现遍历指定目录的方法,网上的方法也非常之多,我们可以拿来参考参考,如下边的traverse.rb文件内容所示:
#!/usr/bin/ruby
def traverse(filepath)
? ? if File.directory?(filepath)
? ? ? puts "Dirs:" + filepath
? ? ? Dir.foreach(filepath) do |filename|
? ? ? ? if filename != "." and filename != ".."
? ? ? ? ? traverse(filepath + "/" + filename)
? ? ? ? end
? ? ? end
? ? else
? ? ? puts "Files:" + filepath
? ? end
? end
?
#traverse("d:/vmware")
traverse("/usr/local/src")
其实ruby中已经定义了Find.find方法来处理这种情况,上面的ruby程序可以用其方法来实现,代码显得更为整洁,如下所示:
#!/usr/bin/ruby
require? 'find'
Find.find("/usr/local/src") do |filename|
? p filename
end
?
#traverse("d:/vmware")
traverse("/usr/local/src")