Zip for WPFは、標準的なZip圧縮を実装する方法を提供します。転送されるデータを圧縮することで、WPFアプリケーションのパフォーマンスを向上させながら、データ圧縮/暗号化により分離ストレージを効率よくセキュアに利用できます。
収録クラス
C1ZipFile
zipファイルを処理するクラスです。zipファイルを作成したり、開いたり、変更したりできます。C1ZipFileには、zipファイルのエントリのコレクションを表すC1ZipFile.Entriesプロパティがあります。
C1ZStreamWriter
データを受け取り、圧縮して、基底にあるストリームに書き出すストリームオブジェクトです。データをファイル、メモリ、その他あらゆるタイプをストリームに圧縮できます。BinaryWriterオブジェクトをC1ZStreamWriterにアタッチして、バイト配列を処理せずにオブジェクトに直接書き込むことができます。
C1ZStreamReader
圧縮ストリームを受け取り、それを展開して、基底にある圧縮ストリームからデータを読み取るストリームオブジェクトです。BinaryReaderオブジェクトをC1ZStreamReaderにアタッチして、バイト配列を処理せずにオブジェクトを直接読み取ることができます。
フォルダの圧縮と展開
フォルダ構造を維持したままフォルダを簡単に圧縮および展開できます。
ストリームの読み取りと書き込み
C1ZipFile.Open(Stream)メソッドを使用して、実際のファイルだけではなくストリームに保存されたzipファイルの読み取りと書き込みを行うことができます。これにより、実際のファイルではなく、アプリケーションリソースに埋め込まれたzipファイルやデータベースフィールドに格納されたzipファイルを読み取ることができます。
ファイル情報の取得と設定
zipファイルのコンテンツの詳細リストを含むファイル情報を簡単に取得できます。zipファイルの個別エントリのコメントの追加と取得、パス情報の制御、およびグローバルzipファイルのコメントの取得と設定などの機能により、ファイル情報を制御することもできます。
ファイルの完全性
zipファイルとそのコンテンツの完全性をテストしたり、最大限の安全を確保するためにzipファイルの一時ファイルで作業できます。
高速で低メモリ使用の圧縮エンジン
低メモリスペースのエンジンにより、zipファイルやメモリバッファを新規または既存のzipファイルに圧縮したり、ファイルをディスクに解凍、またはメモリに解凍したり、文字列やバッファをメモリ内で圧縮/展開したりできます。
ファイルの圧縮と圧縮ファイルの操作
システムおよび隠しファイルを含むファイルの圧縮や、zipファイル内のファイルの削除、zip対象ファイルに適用される圧縮率の制御、およびファイルの展開先のパスの指定を行うことにより簡単に圧縮ファイルを操作できます。
その他の機能
データの暗号化
分離ストレージに保存するデータを暗号化して、セキュリティを向上できます。
ZLIBの利点の取り込み
ZLIBは、移植可能なプラットフォーム間で共通のデータ形式を備えた、汎用性のある、無損失のデータ圧縮ライブラリです。Unix圧縮およびGIF画像形式の LZW圧縮と異なり、ZLIB圧縮法は基本的にデータを展開することはなく(LZWでは、極端な場合ファイルサイズが2倍から3倍になる)、メモリ使用量は入力データと無関係です。
Zip64のサポート
C1ZipはZip64ファイルをサポートします。 この結果、通常の4 GB制限を超えたエントリが可能になり、より大きなエントリが可能になりました。 zipファイルの最大エントリ数は2,147,483,647(int.MaxValue)です。非圧縮エントリの最大サイズは 9,223,372,036,854,775,807(long.MaxValue)です。
100%マネージC# コード
C1.C1Zip.ZLibはAdlerおよびGaillyのZLIBライブラリのC#実装です。低レベルのストリームベースの圧縮と展開を処理するZStreamクラスが含まれます。