我正在使用rake將我從一個文件夾接收的文件複製到兩個子文件夾。紅寶石無法刪除Windows後的cp文件
複製後,我嘗試從他們的原始文件夾中刪除這些文件。
我似乎無法刪除一些文件(通常只有1或2個5左右)。
當使用mv
(而不是CLEAN
)時,我收到一條拒絕訪問的錯誤消息。
我相信Windows(我的操作系統)仍然持有對文件的引用,因此不會刪除它們。
我可以從代碼中刪除文件沒問題。不應該有權限問題。
如果我的理論是正確的,仍然存在對文件開放的引用,那麼我如何關閉這些引用?
難道是別的嗎?
代碼:
DOCK = '/path'
NEW_FILES = DOCK + '/NewFiles'
dock_stock = FileList.new(DOCK + '/*.xml')
file target_path do |t|
unless dock_stock.empty?
mkdir t.name
dock_stock.each do |f|
target_new_files_folder = f.pathmap(NEW_FILES + '/%f')
mv f, target_new_files_folder
end
end
end
也應該注意這個任務是一個多任務(其實是一個依賴的依賴的依賴)的依賴。 task :clean => target_path
就是其中之一。
所以也許問題是多線程相關或:clean
任務。
需要所有這些代碼來重現問題或者您也可以提供更短的例子嗎? – Stefan 2014-10-01 11:28:16
我可以清除周圍的工作,我認爲這對他人有幫助。但我明白你的觀點。 – 2014-10-02 13:32:27