一汁三菜

自分が楽しいと思うこと、マラソン、旅行、その他日々の記録をしたい。

ZIPファイルの生成

ちょっとした小ネタ程度ですが。

プログラムにアーカイバ機能をもたせようとする時に、統合アーカイバプロジェクトが提供するDLLを利用するというのが一つの手です。

ですがZIPファイルだけに限って言えば、Windows XP以降はZIPファイルを一つのフォルダとして扱うことが出来るので、これを使うと普通のファイル操作だけでZIPファイルの操作が出来ます。

問題は新しい圧縮フォルダ、即ち新しいZIPファイルの生成です。ファイルを1つも格納していないZIPファイルは、ZIPファイルのフッターだけが存在するファイルを用意すれば出来上がります。

即ち、

BYTE newZip[] = { 'P', 'K', 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

という配列を用意しておいて、ファイルに書き出せば新しいZIPファイルになります。