【Java】パスワード付きZIPを生成・解凍する方法(zip4j)

zip4j を使用してパスワード付きZIPの生成・解凍する方法について記載します。

パスワード付きZIPを生成する方法

ファイルを指定

addFileメソッドに、ZipParameters を指定することでパスワード付きZIPファイルを生成することができます。

また、入力ファイルをFileオブジェクトとして指定することもできます。

圧縮用パラメーター には AES などの暗号化方式を指定することもできます。AESを使用する場合は、ZipParametersを次のようにします。

一つ気をつけなければいけないことは、AES-256で暗号化した場合、Macのターミナルから解凍することが出来ませんでした(unzipコマンド)。

そのため、圧縮したプログラム以外のアプリから解凍する必要がある場合は、暗号化方式は EncryptionMethod.ZIP_STANDARD にした方がいいと思われます。

複数ファイルを一括で指定する方法

addFilesメソッドを使用することで、複数ファイルを一括で指定することができます。

フォルダを指定する方法

addFolderメソッドを使用すると、ルートフォルダを指定して圧縮することができます。

ZIPを解凍する方法

ZIPファイル内の全てのファイルを取り出す方法

extractAll メソッドを使用すると全てのファイルを取り出すことができます。

ZIPファイル内の指定したファイルのみ取り出す方法

extractFile メソッドを使用すると、指定したファイルのみ取り出すことができます。

まとめ

zip4j を使用すると、簡単にパスワード付きZIPファイルの生成・解凍を行うことができました。

注意する点は、圧縮パラメーターの暗号化方法の指定(setEncryptionMethod)については、指定した方式で圧縮したZIPファイルが必要な環境で解凍できるか確認する必要があります。

Macのターミナルでは、次のような結果になりました。
・EncryptionMethod.ZIP_STANDARD :解凍成功
・EncryptionMethod.AES:解凍失敗

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする