ちょっと私用でZIP圧縮をする機会があったので、メモ。
RubyでZIP圧縮するにはいろいろと方法があるようです。
- 拡張ライブラリのZlibを使う(GZip形式になる?)
URL: http://www.ruby-lang .org/ja/ma n/html/Zli b.html - Gemパッケージのrubyzipを使う
URL: http://rubyforge.org /projects/ rubyzip/ - Gemパッケージのziprubyを使う
URL: http://rubyforge.org /projects/ zipruby/
Rubyforgeをみた感じだとziprubyのほうが新しいようだったので、今回はziprubyを使うことにしました。
まず、ziprubyをインストールします。
1 # gem install zipruby
実際にコードを書くとこのような感じになります。
1 #/usr/bin/env ruby 2 3 require 'rubygems' 4 require 'zipruby' 5 6 zipfile = 'test.zip' # 圧縮されたファイル名 7 passwd = 'password' # パスワード 8 9 # 圧縮するファイルたち 10 # ファイル名を文字列で 11 files = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] 12 13 # filesを圧縮して, test.zipを作成 14 Zip::Archive.open(zipfile, Zip::CREATE) do |arc| 15 files.each{|f| arc.add_file(f) } 16 end 17 18 # パスワードつきのZIPファイルにする 19 Zip::Archive.encrypt(zipfile, passwd)
今回は圧縮と暗号化でしたが、解凍と復号もできるようです。
それにしても、rubyzipとか、ziprubyとか、Gemパッケージって名前の付け方が煩雑ですね・・・。
posted by
y_tsuda
on Thu 6 Nov 2008
at 15:10