2012-01-11 77 views
0

這裏混淆是我的代碼生成的文件由紅寶石/耙文件清單:

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

怎麼來的輸出仍然包含* .dll文件的列表?我錯過了什麼?

回答

2

因爲傳遞給fl.exclude的全局模式與實際文件系統相同,就像/temp全局模式一樣,但由於它不是完整路徑,所以無法進行相同的匹配。

fl.exclude 'c:/temp/**/*.dll' 
1

[繼DigitalRoss的答案]或者您可以在一個正規表示法的模式,看到docs。所以這應該工作

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

puts files