2017-03-17 76 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