ちょっと私用で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をインストールします。
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 y_tsuda on Thu 6 Nov 2008 at 16:18 with 0 comments
Contents rssrss
Xperiaにインストールして1週間生き残ったアプリたち
gem serverをIE8から見るとヒドイことになる現象を解決
gem serverをIE8から見るとヒドイことに
Twitter, Account Suspended
GentooにRuby1.9をインストールした
GentooにScalaをインストールしてみた
多面ディスプレイ環境を手作りしてみた
lower-camel caseな文字列とアンダースコア区切りな文字列の相互変換をRubyで
topコマンドでのCPUコア毎の表示
Fedora11 (on VirtualBox) 速効レビュー
Tags
memoruby
Comments rssrss
Aleksey Aleksey: The uname check is only due to a somewhat sloppy t... 02/02 07:03
Yu Tsuda Yu Tsuda: あぁ、そうですね、、syncすると戻ってしまいますね・・・。 ご指摘ありがとうございます!! 07/11 15:38
ursm ursm: /usr/portage 以下のファイルは更新のたび元に戻ってしまうので、/etc/portage/... 07/11 13:46
Yu Tsuda Yu Tsuda: 見た目だけでも、わざわざGentooをこういうリストに入れてるのがすごいなぁと思ったりしたのです(笑... 03/31 19:49
Leonard Chin (レオ) Leonard Chin (レオ): ただし、VirtualBoxで「Gentoo」などを選択しても、別にどのOSを入れても大丈夫だ。あく... 03/31 13:00
Yu Tsuda Yu Tsuda: この機能、結構便利なんですよねー。 またEmacsで便利な機能を見つけたらブログに書きまーす。 11/27 23:46
satoko satoko: 知らんかった!emacs派なのでうれしい。thanks! 11/27 12:08
satoko satoko: 他の記事も御苦労さまです!大変だけど、後で報われる(はず!)のでがんばってくださいませっ あとあと... 10/23 00:18