ちょっと私用でZIP圧縮をする機会があったので、メモ。

RubyでZIP圧縮するにはいろいろと方法があるようです。

  1. 拡張ライブラリのZlibを使う(GZip形式になる?)
    URL: http://www.ruby-lang.org/ja/man/html/Zlib.html
  2. Gemパッケージのrubyzipを使う
    URL: http://rubyforge.org/projects/rubyzip/
  3. 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 Png y_tsuda on Thu 6 Nov 2008 at 15:10
Contents
RubyでZIP圧縮
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
KingofSmack: Here also good reads for this mobile applicatio... '14-5
Spencer: You don't have to re-compile it, this version w... '14-4
staiano: Any chance we can get a recompile for 10.9? '14-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ