2012-01-19 7 views
0

C++/C#を使用してWindows Mobileプラットフォームでファイルを圧縮する方法のリストを探しています。 私は可能な限りサンプルプロジェクトへのリンクを含めて、これが実現可能なすべての方法を見ていきたいと思います。パフォーマンスのヒットに関係なく、すべての可能性を見たいと思います。参考として、300MBのデータを圧縮する必要があるとします。C++/C#を使用してWindows Mobile上でファイルを圧縮する可能な方法

+0

クイックグーグルがこのクラスになります。http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx Any Good? – Joel

+1

GZipStreamクラスとDeflateStreamクラスは、 "圧縮された"データのサイズを大幅に増やすことができます。つまり、スタンドアロンコンプレッサーのようにヘッダーバイトを追加するだけでなく、データを50%もインフラート化します。これは明らかに、これらのクラスはすべてのスタンドアロンコンプレッサーの標準機能である非圧縮データをチェックしないためです。両方のクラスは、データが実際に圧縮可能な場合に正常に動作します。 詳細については、このスレッドを参照してください。 http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=179704&SiteID=1 –

+0

ああ、そのことに感謝の意をお寄せください – Joel

答えて

0

"私はすべての可能性を見たいと思っています" - あまりにも多くの可能性があるので、おそらくすべての可能性をリストアップするつもりはありません。

しかし、ここではCを使用して、いくつかのサンプルがある(そうC++から使用することができます):ファイルをビュンため

libzip:たとえば、アーカイブの様々なフォーマットを処理するための http://www.nih.at/libzip/

作者libarchive、ジッパー、タール、XAR、... http://people.freebsd.org/~kientzle/libarchive/

LZMAのSDK、おそらくより良い圧縮率、および非常に遅い: http://7-zip.org/sdk.html

zlibの、これまでで最もポータブルZIP圧縮/伸張ライブラリ:これもジップためである http://zlib.net/

を: http://zziplib.sourceforge.net/

希望十分でしょう。

+0

ZLIBはZIP圧縮/解凍ライブラリではありません。これは、GZIPコンプレッサーなどのエキストラのカップルを持つポータブルなデフレートアルゴリズムの実装です.ZIPはコンテナ形式ですが、deflateは圧縮アルゴリズム(またはより正確にはロスレスデータコーデック)です。 –

+0

ご清聴ありがとうございます。私はちょうどZIPがそれを使用し、それが関係であると思ったことを見てきました。 –

0

Windows Mobileは、低エネルギープラットフォームに翻訳される傾向があります。 この場合、高速低エネルギー圧縮ライブラリに興味があるかもしれません。そのライブラリはzipよりも10倍速く完了します。これは、より長い電池寿命に直結します。

C++の場合は、Snappyを試してみてください。

C, C++C#については、LZ4を試してみてください。

ウィルスのGPLライセンスに気にしない場合は、LZOもお試しください。

関連する問題