.NET 3.5 に組み込みの zip ライブラリはありますか?
そうでない場合、一般的なオープン ソースの .net zip ライブラリは何ですか。
編集: コメントの注を参照してください - SharpZipLib は現在メンテナンスされていません。おそらくそれを避けたいと思うでしょう。
オープン ソース: #ZipLib
名前空間のクラスはSystem.IO.Compression
、単一のデータ ストリームを圧縮/解凍するのに適していると思いますが、実際の zip ファイルに対処するためのフレームワークには何も組み込まれていません。
編集: Ants の回答に記載されているように、 System.IO.Packaging.ZipPackageがありますが、それは確かに WPF で使用するように設計されているように見え、一般的な zip ファイル処理に使用するのはあまり便利ではありません。しかし、調べる価値があります。私は以前にそれを認識していませんでした...間違いなく調査する価値があります。
組み込みライブラリはありません。オープンソースのオプションがあります。
DotNetZipはその 1 つです。シンプルで使いやすい。優れた機能があります: AES 暗号化、通常の暗号化、ストリーム、ZIP64、ファイル コメント、Unicode、進行状況イベントなど。しかも無料でオープンソースです。
ここにいくつかのサンプルコードがあります。
// extract all Photoshop files larger than 100mb
using (ZipFile zip1 = ZipFile.Read(ZipFileName))
{
var LargePhotoShopFiles = zip1.SelectEntries("name = *.psd and size > 100mb");
foreach (ZipEntry e in LargePhotoShopFiles)
{
if (e.UsesEncryption)
e.ExtractWithPassword("unpackDirectory", "VerySecret!");
else
e.Extract("unpackDirectory");
}
}
7Zipが役立ち、複数の言語で利用できます
試してみてくださいSystem.IO.Compression.DeflateStream
。
2 番目にhttp://www.7-zip.org/sdk.html LZMA SDKをお勧めしますが、これは ZIP ではありません。