我需要提取包含許多文件夾和文件的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