我需要提取包含许多文件夹和文件的zip文件,使用rails ziprails
gem。同时也保持文件和文件夹的组织方式,他们在ziped。如何解压缩包含文件夹和文件在rails中的zip文件,同时保持目录结构
这不像我一样直截了当。请参阅我在下面找到的解决方案(添加以备将来参考)
我需要提取包含许多文件夹和文件的zip文件,使用rails ziprails
gem。同时也保持文件和文件夹的组织方式,他们在ziped。如何解压缩包含文件夹和文件在rails中的zip文件,同时保持目录结构
这不像我一样直截了当。请参阅我在下面找到的解决方案(添加以备将来参考)
这对我有效。使用子文件夹和文件解压ziped文件夹时得到与您预期的相同的结果。从本网站
Zip::ZipFile.open(file_path) { |zip_file|
zip_file.each { |f|
f_path=File.join("destination_path", f.name)
FileUtils.mkdir_p(File.dirname(f_path))
zip_file.extract(f, f_path) unless File.exist?(f_path)
}
}
解决方案: http://bytes.com/topic/ruby/answers/862663-unzipping-file-upload-ruby
提取Zip文件您需要rubyzip
宝石这一点。一旦你已经安装了它,你可以用这个方法来提取zip文件:
require 'zip'
def extract_zip(file, destination)
FileUtils.mkdir_p(destination)
Zip::File.open(file) do |zip_file|
zip_file.each do |f|
fpath = File.join(destination, f.name)
zip_file.extract(f, fpath) unless File.exist?(fpath)
end
end
end
您可以使用它像这样:
file_path = "/path/to/my/file.zip"
destination = "/extract/destination/"
extract_zip(file_path, destination)
http://www.railshorde.com/博客/红宝石解压一对多-ZIP文件夹,下一个目录 – Animesh