如果我想获取所有CSS和JavaScript文件
Dir.glob("dir/**/*.{css,js})
如果有一个名为stupidfolder.js
的文件夹,会给我一些我不想要的东西。我只想更改文件夹的名称,但我不能。
答案 0 :(得分:11)
Dir.glob
无法做到这一点。您必须明确拒绝这些条目。
only_files = Dir.glob('*').reject do |path|
File.directory?(path)
end
答案 1 :(得分:4)
您可以使用Dir.entries
Dir.entries('../directoryname').reject { |f| File.directory?(f) }
答案 2 :(得分:4)
这可能夸大了您的问题,但rake
定义了一个班级FileList
。您可以使用此类替换Dir.glob
:
require 'rake'
filelist = FileList.new("dir/**/*.{css,js}")
filelist.exclude('**/stupidfolder.js')
filelist.each do |file|
#...
end