複数のファイルをまとめるようなアーカイバとなると、(ファイルごとにストリームとなるので)複数のストリームに対応する必要がある。
よって、StreamRelay.jar とは相性が悪い。
StreamRelay.jar 内部にまとめてしまってよかったのか知れないけど、サポートプログラムとして独立させることにした。
ZipStream.class
StreamRelay.jar のあるディレクトリの下の「ZipStream」というディレクトリに存在していると思う
java.exe ZipStream
でヘルプが出る
java.exe ZipStream list "zipfile"
で zip ファイル内部のエントリー(zipに格納されたファイル)の一覧が表示される
java.exe ZipStream read "zipfile" "file1" > "file2"
「zipfile」というzipファイル内部の「file1」というエントリー(ファイル名)の内容を読み出して、(シェルのリダイレクト機能で)「file2」というファイルとして保存する
例えば "file1" が「..\filename」のような通常の zip 展開ツールがエラーとなるような場合でも内容を確認できるよ。
(ZipStream.class はzipファイルに格納されたファイル名ではなくて、ただのエントリ名(文字列)として認識しているため)
type "file3" | java.exe ZipStream write "zipfile" "file4"
または
java.exe ZipStream write "zipfile" "file4" < "file"
とすると、ファイル「file3」の内容を「zipfile」というzipファイル内の「file4」というエントリで圧縮保存するよ。
ArchiveStream.jar
ZipStream.classを拡張し、いろんな圧縮アーカイバに対応
java.exe -jar ArchiveStream.jar
⇔
ArchiveStream.bat
ArchiveStream.bat
でヘルプが出る
基本的には、ZipStream.class と使い方は一緒だけど、アルゴリズム名を指定するオプションがあるという点だけが異なる
java.exe -jar ArchiveStream.jar "arctype" list "ArcFile" java.exe -jar ArchiveStream.jar "arctype" read "ArcFile" "File" > "File" type "File" | java.exe -jar ArchiveStream.jar "arctype" write "ArcFile" "File" java.exe -jar ArchiveStream.jar "arctype" write "ArcFile" "File" < "File"
「arctype」に指定てきるオプションは
- cpio
- ar
- tar
- zip
- arj
- 7z
- lha