ZIP形式のままでもっと圧縮する

tl;dr

7-ZipでZIPファイルを作ろう

本題

ファイルを少しでも小さく圧縮して配布したいときに、Unixならxzの普及が進んでいるのでxzで圧縮してしまえばよい。しかしWindowsではどうだろうか。xzと同じLZMAで圧縮するなら、7-Zipを使って7z形式のアーカイブを作ることになる。しかし、7z形式はお世辞にも普及しているとは言えない。

7zを解凍するために、わざわざ7-Zipをインストールする人は少ないだろう。自己解凍形式のexeファイルで配布すれば7-Zipのインストールは不要だが、exeファイルを通さない壁の向こうには配れない。

残念ながら、Windowsでファイルを配布するときはZIP形式以外の選択肢はない。しかしZIP形式のままでも、より小さくする方法はある。それは7-Zipを使ってZIPファイルを作成することだ。

7-Zipの持つZIP形式の圧縮アルゴリズムの実装は、Windows標準のものよりすぐれていて高い圧縮率を実現できる。たとえば、Tera Term 4.103のZIPファイルを7-Zipで圧縮しなおすと、8,660,777バイトから8,482,512バイトへと2%ほど小さくなる。

使い方は簡単で、フォルダを選んでコンテキストメニューから7-Zip→圧縮と選んで、表示されたダイアログで書庫形式でzipを圧縮レベルに超圧縮を選ぶだけだ。


7-Zipをインストールすると7z.exeというコマンドライン版もインストールされるので、これを使ってバッチ処理もできる。同じ処理をコマンドラインで行うなら以下のようになる。

D:\Downloads\テスト\teraterm-4.103> 7z a -tzip -mx9 ..\teraterm-4.103.zip -r *  

ちなみに、私が公開しているソフトウェアのZIPファイルはすべて7-Zipで圧縮している。