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