• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

ちょっと私用で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

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry1006
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ