4GB以上のサイズのファイルを圧縮するには

年末だからと言うわけではないのですが、メールデータのバックアップをしようとデータ量を見てみたら8GBを超えていて、「時間は掛かるだろうけど、まぁ良いか」とZIP圧縮しようとしたら出来ない。確かに処理は進んでいるはずなんですが、途中で圧縮作業が終了してしまう。えーと思って調べてみたらば、ZIPって圧縮できるファイルのサイズに「4GB」っていう制限があるんですね。


オリジナルのZIPフォーマットは、ZIPアーカイブ内のエントリに 65535 の制限があるのと同様に、様々なサイズ(ファイルの圧縮/非圧縮サイズ、アーカイブの合計サイズ)に4 GiBの制限があった。

ZIP (ファイルフォーマット) – Wikipedia


また圧縮後のファイルサイズにも制限があって、2GB以上のサイズの圧縮ファイルは作れないようです。


2 ギガバイト (GB) を超えるサイズの圧縮フォルダー (ZIP ファイル) を作成すると、そのファイルの読み取りができなかったり、破損する可能性があります。ファイルを作成したときにはエラー メッセージは表示されませんが、それを作成した後、ファイルを読み取ることができません。

2 ギガバイトを超える圧縮フォルダーは、破損します。


一応、後継の仕様ではZIP64というフォーマット拡張のもと扱えるようになってはいるようなのですが、残念ながらWindows XPは対応していないようです(OSの圧縮機能が対応していないだけでソフトウェアを介せば使用できるのかも知れませんが)。


仕様のバージョン4.5(それは特定ツールのバージョン4.5と同じではない) では、PKWAREはこういった制限を回避するために16 EiB(264 バイト)まで増加させた “ZIP64” フォーマット拡張を導入した。ZIP64サポートは新規に発生したものである。例えば、Windows XPのファイルエクスプローラーはZIP64をサポートしないが、 Windows Vistaのエクスプローラーではサポートする。

ZIP (ファイルフォーマット) – Wikipedia


大きいサイズのファイル圧縮に利用するフォーマットは

というわけで、安定性と対応を考えて圧縮には以下のフォーマットのどれかを使用します。

  • 7-Zip
  • RAR
  • ALZip

「無償で使用できるかどうか」「認知度の高い形式であるかどうか」を考えた上で採用したのは7-Zip。この形式であれば僕が愛用している圧縮・解凍ソフト「Lhaz」でも対応しています。

Lhazのページ


圧縮結果

以下の通り。

圧縮前:8.04GB

圧縮後:2.89GB


半分以下のサイズになりました。正直に言うともうちょっと小さくなるのを期待していたのですが、まぁ元が元だけにそれは無理ってもんですね。ええ。そもそもそのレベルで正常な圧縮を保障せよというのが間違いなような気がしますが、とりあえず今回は上手く圧縮できたようなので良しとします。

まぁ、最悪メールは全部Gmail上にあるはずなんでまぁ良いかなと思うわけですけどね……