コード内容
sample.zip内のファイルをすべて、outディレクトリに解凍する。
サンプルコード
sample.rb
require 'zip'
dest = 'out/'
Zip::File.open('sample.zip') do |zip|
zip.each do |entry|
p entry.name
# { true } は展開先に同名ファイルが存在する場合に上書きする指定
zip.extract(entry, dest + entry.name) { true }
end
end
ソース
ドキュメント
rubyzipのドキュメント
http://www.rubydoc.info/github/rubyzip/rubyzip/master/frames
補足
Zip解凍中に"ディレクトリが存在しない"とエラーが発生する現象の対応
rubyzipがZipファイルの解凍時にディレクトリ作成よりも
ファイル出力を先に実行する場合がある。
対応策をsample_bugfix.rbに記載した。