困惑的ruby / rake文件列表

时间:2012-01-11 18:35:06

标签: ruby file rake

这是我生成文件列表的代码

  files = FileList.new('c:/temp/**/*') do |fl|
    fl.exclude("*.dll")    
  end
  puts files

为什么输出仍然包含* .dll文件?我遗失了什么?

2 个答案:

答案 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