2009-05-26 15 views
3

暗号化された/パスワードで保護されたファイルをRubyスクリプトを使ってシステムコールにドロップすることなく解凍したいと思います。現在、ファイルを解凍するのにrubyzipライブラリを使用していますが、暗号化されたファイルを扱うためのオプションは表示されません。Ruby経由でパスワードで保護されたファイルを解凍する方法

誰かがこれを行うコードまたはライブラリを知っていますか?

+0

要件が変更され、パスワード保護されたファイルを解凍する必要がないので、Rubyを使用していますジッパーは解凍を行います。答えをありがとう。 – digitalsanctum

答えて

1

これまでに聞いたことがあるのはChilkat Ruby Zip libraryですが、これは無料ではありません。 RubyZipライブラリは、パスワードで保護されたファイルをサポートしていません。なぜなら、基礎となるライブラリzlibはそうしていないからです。

2

正しい答えは、システムコールを使用することです。それがそこにある理由です。

実際には、ライブラリやメソッドを使用するよりも、遅くてエレガントではありません。しかし、誰かに税金を払うよりも安く(ロイヤルティの支払い)、新しい図書館を自分で作成するよりはるかに高速です。

0

ルビーライブラリではありませんが、おそらく無料のオプションです。

アプリがWindowsで実行されている場合は、新しいCOMインターフェイス経由でDotNetZipライブラリを使用できます。パスワードで保護されたファイル、Zip暗号化(弱い)、またはWinZip互換のAES暗号化のいずれかを行います。

DotNetZipは無料です。

Windowsの問題が解決しない場合は、別の可能性があります。 DotNetZipもMonoで動作します。他のプラットフォームでRubyからMonoへの呼び出しを可能にするRuby-to-Mono統合メカニズムがあるかどうかはわかりませんが、存在すればDotNetZipに呼び出すこともできます。

0

JRuby + Javaライブラリを使用してzipファイルを処理するオプションは常にあります。 http://www.lingala.net/zip4jは(暗号化された)zipファイルを処理し、Apacheのライセンスを受けています。私はまだそれを使用していないが、する必要があります。

3

はい、途中で素晴らしい作品1があり、私はちょうどそれを試してみましたが、途中で自分の投稿を見つけた...

Archive-zip

使用例:

require 'archive/zip' 
Archive::Zip.extract('example5.zip', 'a_destination', :password => 'seakrit') 

これは、Googleで同じものを探している他の人には便利だと確信しています:)

+1

gem install archive-zipでインストールでき、問題なく動作しました。 – knut

関連する問題