rubyでzipを扱うには、いくつかgemがあるようですが、
rubyzipを使用しました。
Gemfileに以下のように書いて、bundle installすれば使えました。
gem 'rubyzip'
今回用途として、zip内先頭の数ファイルと最後から数ファイルを
取り出して中身を判別したいというものだったので、
下記のようなやっつけコードを書きました。
全部を解凍せずに、ほしい物だけ取り出せるので便利です。
同じようなもので、rarを扱えるgemが欲しかったのですが、
まだ、gemにはそこまでのものがないようです。
require 'zip' Zip::File.open('foo.zip') do |zip_file| entry_firsts = zip_file.glob('*.*').first(3) entry_firsts.each do |entry_first| entry_first.extract(Dir::pwd + "/tmp/" + entry_first.name){ true } end entry_lasts = zip_file.glob('*.*').last(3) entry_lasts.each do |entry_last| entry_last.extract(Dir::pwd + "/tmp/" + entry_last.name){ true } end end