这是我生成文件列表的代码
files = FileList.new('c:/temp/**/*') do |fl|
fl.exclude("*.dll")
end
puts files
为什么输出仍然包含* .dll文件?我遗失了什么?
答案 0 :(得分:2)
因为传递给fl.exclude
的glob模式是像/temp
glob模式那样针对实际文件系统扩展的,但它不能做同样的匹配,因为它不是完整路径。
fl.exclude 'c:/temp/**/*.dll'
答案 1 :(得分:1)
[遵循Digital Ross的回答]或者您可以使用正则表达式作为模式,请参阅docs。所以这应该有用
files = FileList.new('c:/temp/**/*') do |fl|
fl.exclude(/\.dll$/)
end
puts files