2017-03-17 129 views
1

拉鍊,我已經在軌道上的angularJS的應用程序了和紅寶石。資源鎖而產生使用Zipfilegenerator類紅寶石

我通過代碼生成的子文件夾和html文件。像我的文件夾結構就是這樣

-root

----- Sub1的

---------- Sub_Sub1

-------- --Sub_Sub2

---------- index.html的

-----分公司2

----- abc.html

我已經通過Zipfilegenerator生成的目錄的zip文件。

我所做的功能,因此,如果以前的任何目錄中具有相同名稱的存在,那麼它會刪除,然後生成新的目錄生成的目錄系統檢查之前。這是我的代碼來刪除文件夾和文件。

#delete all files 
Dir.glob("path/to/dir/.") do |rb_file| 
File.delete(rb_file) 
end 

FileUtils.rm_rf("path/to/dir/") #delete all sub directory 
FileUtils.mkdir("path/to/dir/") #create root directory 

下面是創建ZIP

zf = ZipFileGenerator.new(directory_to_zip, output_file) 
zf.write() 

現在我有一個奇怪的問題,第一次一切正常 目錄下生成 zip文件生成 但第二次失敗,系統會刪除該代碼在第一次嘗試中創建的根文件夾和子文件夾中的文件。

我已經展開調查,並發現當我評論zip創建代碼,然後將文件已經成功刪除。

所以我面臨的資源鎖的問題,同時產生從目錄中的zip文件。你能幫我解決問題嗎?

回答

2

我已經使用此代碼解決了它。 我已更改rubyzip類中的代碼

disk_file = File.open(diskFilePath, "rb") 
io.get_output_stream(zipFilePath) { |f| 
f.puts(disk_file.read()) 
} 
disk_file.close