DotNetZipをC#で実際に使用してみました。

日本語対応がされているというver1.6,1.7を使用。

両方とも扱う際にエンコード方式を指定すれば対応できるというものでした。

基本的な動作である、圧縮、解凍、圧縮ファイルの中身確認等を確認しました。

圧縮はファイル、ディレクトリ共に行うことが可能です。

圧縮率をWindowsのデフォルト機能と比較してみました。

対象ファイルは

  • ビットマップファイル
  • mp3ファイル
  • テキストファイル
  • movファイル(動画)
  • jpgファイル

の5つです。

結果は、Windowsのデフォルト機能の方がわずかに優れていました。それぞれのファイルについて圧縮率をみてみると、DotNetZipはmp3ファイルやjpgファイルのようなすでに圧縮がかかっているものに対しては、圧縮をほとんどかけないみたいです。

Windowsのデフォルト機能はそのようなファイルに対しても一応圧縮をかけています(といっても圧縮率1%くらいにしかなりません)

それ以外のテキストファイル、ビットマップファイル、movファイルに関しては両方とも同じ圧縮率でした(movファイルもこれ以上圧縮はかかりにくい)

蛇足ですが、DotNetZipの利用に際して、参考ページをみていたところ

ForceNoCompression=true

としているものがありました。英語の意味を考えたらすぐにわかるのですが、このコードを記述すると、アーカイブされるだけで圧縮がかかりません。

このコードをあまり考えずに僕も書いて(コピーして)いたので

「zipなのにぜんぜん圧縮されない!!」

というアホな罠にけっこうハマってしまいました。

一応メモしておきます…

カテゴリー: 技術情報

1件のコメント

squld · 2009-06-11 19:36

せっかく圧縮率のテストをしたのなら、図表のひとつぐらい載せて欲しかったっす・・・。

現在コメントは受け付けていません。