我使用shell命令在ruby中压缩文件。然后我将压缩文件上传到服务器。 当我在一个循环中使用它时:
dump_files.each do |dump_file|
Open3.popen3("zip #{zip_file} #{dump_file}")
end
并上传,dump_files数组中的最后一个文件不存在于上传的zip文件中,但它存在于本地文件中。
我认为这是因为压缩文件的时间延迟。 在zip命令执行完成之前,如何延迟我的ruby执行?
答案 0 :(得分:3)
不应该是:
`zip "#{zip_file}" "#{dump_file}"`
(换句话说,你根本没有拉链?)
答案 1 :(得分:0)
使用``而不是popen3将解决问题
替换
Open3.popen3("zip #{zip_file} #{dump_file}")
与
`zip #{zip_file} #{dump_file}`