當試圖刪除目錄(+內容)並在讀取裏面的文件後,FileUtils.rm_rf(path)
不會刪除所有文件夾,儘管它確實刪除了所有文件並且一些的文件夾。使用File.open塊後無法刪除Dir/Files塊
經過一番實驗後,它似乎與File.open塊有關。 (其實我做塊內正則表達式匹配,但我只是用放這裏讓事情變得清晰)
File.open(file).each do |line|
puts line
end
從我讀過的東西,上面應自動關閉該文件,但使用這個時,FileUtils無法完成其任務。
但是,如果我使用下面的代碼,FileUtils按需要工作。
open_file = File.open(file)
open_file.each do |line|
puts line
end
open_file.close
在第二個例子中使用代碼沒什麼大不了的,但我更喜歡第一個例子的清潔。
爲什麼第一個例子會破壞FileUtils?
P.S.我對Ruby和Stack Overflow都很陌生....嗨。我的系統是Ubuntu的11.04(64位),運行RVM使用Ruby 1.9.2-P180
當我通過文件名時,我實際上是通過了整個路徑; /media/drive/filea/a.html。我在目錄「filea」中做的唯一事情是運行一個Dir.glob(「#{path}/**/*」)來獲取文件名列表(a.html等) - 也許是這樣的。我明天會做一個測試。 –