ziprubyを使えば簡単に実現できる。
まずはgemを使ってziprubyをインストール
# gem install zipruby
コードは大体こんな感じ。・・・といっても解凍はここではやっていない。タイトルに偽りあり。
require 'rubygems' require 'zipruby' begin # decryptの第1引数はファイル名、第2引数はパスワード Zip::Archive.decrypt(ARGV[0],ARGV[1]) rescue Zip::Error # エラーが発生した場合は、ここで処理 end
適当なファイル名で保存して、実行引数にファイル名とパスワードを入れればオッケー。
面白いと思ったのは、元のファイルは残っているけど、パスワードがかかっていない状態になっていること。パスワードかかっていると思っていて、そのファイルをアップしたりメールで送ったりする危険性あり。
ziprubyはパスワードをかけるときもzipファイルを生成した後からパスワードを追加する形みたい。もしかしたら、パス付きZIPってそういうものなのかもしれないけど<無知
ziprubyはインストール先のREADME.txtにサンプルソースがあるので、他の使い方はそれを参考に。
しかし、久しぶりにRubyさわったら基本構文まで忘却しとる・・・orz