2011-06-29 88 views
5

這是我在rake任務代碼打開一個文件:Rails.root文件路徑通配符

File.open(Rails.root.join("public/system/xmls/**/original/*.csv"),"r") do |file| 
    #etc 

,但它不匹配任何文件(有三種可能的結果)。第一個**是一個2位數名稱的文件夾。我哪裏錯了?

回答

4

join方法通常不擴展***,但將它們作爲文字。也許這是問題所在。你想要的可能更像這樣:

Dir.glob(Rails.root.join("public/system/xmls/**/original/*.csv")).each do |path| 
    File.open(path) do |file| 
    # ... 
    end 
end 

單獨打開每個文件,你應該沒問題。

+0

天才。它完美的作品。謝謝! – snowangel

+0

匿名用戶評論(拒絕編輯):爲了遍歷每一行,用'File.open(path).each'替換'File.open(path)'。 – Anne