文件结构:
folderA/
- folder1/
- file1.rb
- file2.rb
- folder2/
- folder1/
- file1.rb
- folder2/
- file1.rb
- file1.rb
- file2.rb
使用下面的代码,我只能在folderA/file1.rb
和folderA/file2.rb
# EDITTED
Dir.glob('folderA/*.rb') do |file|
puts file
end
是否可以仅使用.rb
迭代所有glob
文件(包括子文件夹)(不使用Dir.foreach(dir).. if ..)?
P.S。 Ruby v.1.8.6
答案 0 :(得分:22)
答案 1 :(得分:2)
答案 2 :(得分:2)
这应该有效:
来源:http://ruby-doc.org/stdlib-1.9.3/libdoc/find/rdoc/Find.html
require 'find'
Find.find('spec/') do |rspec_file|
next if FileTest.directory?(rspec_file)
if /.*\.rb/.match(File.basename(rspec_file))
puts rspec_file
end
end
在ruby 1.8.7中测试