armadillo
は、Javaで書かれたアーカイビング処理ライブラリです。
アーカイビングを処理するAPIと、それらを統合するイン
ターフェイスを提供します。
アーカイブの種類と対応状況で す。
種類 | 読み込み | 作成 | 説明 |
---|---|---|---|
LHA(lzh) | ? | ? | 独自実装。圧縮方式はLH5,LH0,LHDのみ。最低限の性能。 |
ZIP | ○ | ○ | ヘッダの処理は独自実装。圧縮部分は標準APIを使用。 日本語 ファイル名はデフォルトでOSエンコーディングを使用。 |
TAR | ○ | ○ | 独自実装。ustar形式のみ対応。 |
TAR+GZ | ○ | ○ | TARと標準API(GZIP I/O)の組み合わせ。 |
Pure Java なので、ファイルの属性は一部(更新時刻)を除いて復元できません。アクセス権や所有者の情報などは復元されません。
armadillo は、外部ライブラリを使用していませんので、JRE(Java1.4以上)さえあれば動作します。
現 時点では、あまり複雑なことは組み込まないようにしています。互換性よりも、単純さを優先しています。
開発時点でEOLを迎えていない最古のJavaバージョンである1.4以上の環境で 利用できます。最近では、Eclipse3.xを動作させるためにJava1.4がインストールされていることが多いので、これで十分と考え ています。
実装面では、assertや New I/O API を多用しています。
いつになるかは分かりませんが、広く使われているアーカイブ形式には対応していきます。特に、 bzip2と7zipあたりを。(難易度高そうです。)
独自アーカイブを作る枠組みなども作ってみようかと思って います。
開発環境を提供していただいている SF.jp
、Javaを支えている方々、参考にさせていただいた書籍やサイトの著者の皆様、ありがとうございます。