Ole*_*røm 12 ruby zip ruby-on-rails
我需要使用rails ziprailsgem 提取包含许多文件夹和文件的zip文件.同时还保持文件和文件夹的组织方式.
这并不像我那样直截了当.请查看我在下面找到的解决方案(添加以备将来参考)
Ole*_*røm 20
这对我有用.与子文件夹和文件解压缩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)
}
}
Run Code Online (Sandbox Code Playgroud)
该站点的解决方案:http: //bytes.com/topic/ruby/answers/862663-unzipping-file-upload-ruby
你需要这个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
Run Code Online (Sandbox Code Playgroud)
你像这样使用它:
file_path = "/path/to/my/file.zip"
destination = "/extract/destination/"
extract_zip(file_path, destination)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15934 次 |
| 最近记录: |