.NET用の優れたオープンソースのzipライブラリを知っている人はいますか?
5 に答える
内部gzip実装に関するコメントやその他の投稿に関しては、同じではありません。GZipは、アーカイブに必要なヘッダーを作成しません。1つのファイルまたはストリームを「zip」する場合にのみ役立ちます。
適切なzipアーカイブには、すべての圧縮ファイルとそれらが圧縮されたデータのどこにあるかをリストするヘッダーが含まれているため、ヘッダーを作成するものが必要です。つまり、SharpZipLibは、多くの商用バージョンの1つであるか、7zipなどの.NETバインディングで外部のものを使用しています。
たまたま誰かがこれを言いたがっています:「しかし、私は.gz
いつもLinuxのファイルを見ています!」-これらは単一のファイルで.tar.gz
あり、例外ではありません-tarはアーカイブファイルです。圧縮された.gz
アーカイブです。
カップルのコメント。
- J# ランタイムを使用しないでください。J# は Microsoft によって廃止されました。今後のサポートは疑問です。また、ZIP サポートだけが必要な場合、J# ランタイム全体を飲み込むのは非常に困難です。
- .NET 2.0 以降の .NET 基本クラス ライブラリの一部である System.IO.Compression の GzipStream は、IETF RFC-1952圧縮用のストリーム インターフェイスを提供します。圧縮には問題ありませんが、圧縮率は最適ではなく、以前に圧縮されたデータが大幅に拡大されます。このバグは Microsoft に報告されましたが、クローズされたようです。同様の DeflateStream もありますが、RFC 1951用です。GZipStream が zip ファイルを処理するという一般的な誤解があります。違います。 これら 2 つのどちらも zip ファイルを実行しません。
- System.IO.Packaging.ZipPackage があります。機能しますが、主に MS Office 2007 (.docx、.xslx、および .pptx) ファイルのパッケージ化を目的として設計および意図されています。zip ファイルには扱いにくく、暗号化などの多くの ZIP 機能をサポートしていません。
- .NET で zip ファイルを柔軟に作成および読み取る方法が必要な場合は、現在、サード パーティのライブラリが必要です。
DotNetZipは、優れたサード パーティのオプションです。無料、オープンソース、積極的にメンテナンスされ、使いやすく、小さく、優れた機能セット。これは単一のアセンブリとして出荷されます。完全に管理されたコードです。Compact Framework と通常の .NET Framework で動作します。前提条件は .NET 2.0 です。
DotNetZip には、{Zlib,GZip,Deflate}Stream などのクラスを含む ZLIB ライブラリも含まれています。これらは .NET に組み込まれているものに匹敵しますが、圧縮レベルを設定する機能が含まれており、より高いレベルでは組み込みクラスよりもはるかに効果的に圧縮します。ZlibStream はRFC 1950圧縮を行います。
DotNetZip は、ZIP64、パスワード、AES 暗号化、ストリーム、SFX、および Unicode を処理します。それを使用する誰もが、SharpZipLib よりもはるかに使いやすいと言っています。優れたヘルプ ファイル (.chm) と多くのコード例があります。
DotNet Zipライブラリ(Ionic.Zip.dll)は非常に使いやすいです。SharpZipよりも実装が簡単だと思います。
****しかし、みんな.NETはすでにオープンソースのzipをサポートしています.... ****
http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx
これはGZIPライブラリと互換性があります。これを使用して、C ++アプリケーションでc#データを圧縮し、ネットワーク全体で解凍しました。正常に動作します。
トニー