.NET上でZIPファイルを扱うライブラリとして、これまでJ#のライブラリを使用してきました。しかし、これは一部のツールと互換性のないファイルを作成する問題があります。
具体的には、以下のような問題が発生しています。
- WinZipで扱えないことがある
- Windows Mobile上のGSFinderで扱えないことがある
- Windows Mobile上のExパンダで扱えないことがある
以前試したときにはSharpZipLibも同じようにWindows Mobile上で扱えないファイルを生成しました。
というわけで、何を使えば良いのか悩んでいました。
その後、DotNetZipというライブラリがあると知ったのですが、多忙でチェックが棚上げになっていました。しかし、複数の案件がZIPの問題で引っかかっている状況に気づいちゃので、無い時間を割いて試してみました。
その結果……。
なんとGSFinder, Exパンダ共にOKというファイルが生成できました。
これはナイス!
ご注意 §
これは、単に以下の条件で生成したファイルが、GSFinder, Exパンダで扱えたという話でしかありません。SharpZipLibや他のライブラリの最新版はチェックしていないので、状況は違うかもしれません。
検証手順 §
- 上記サイトよりZipUtils-v1.3.zipを入手
- これに含まれるZipItを使用し、JPEGファイルを1つ含むZIPファイルをWindows Vista上で作成
- Advanced/W-ZERO3 [es]に転送
- Advanced/W-ZERO3 [es]上のGSFinderおよびExパンダでZIPファイルを開き、内部のJPEGファイルが正しく表示されることを確認
感想 §
DotNetZipはライセンスも緩いし、割と使えるかも……。
と思ったものの、用事が多くてすぐにソースをいじれないよ!
謝辞 §
このライブラリの存在に気づかせてくれたmessiahさんに感謝!