2013-11-03 113 views

回答

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) 
    } 
    } 

解决方案: http://bytes.com/topic/ruby/answers/862663-unzipping-file-upload-ruby

1

在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) 
相关问题