.NET 3.5 中有内置的 zip 库吗?
如果没有,什么是流行的开源 .net zip 库。
编辑:请参阅注释中的注释 - SharpZipLib 现在未维护,您可能希望避免它。
开源:#ZipLib
我相信System.IO.Compression
命名空间中的类可以很好地压缩/解压缩单个数据流,但是框架中没有内置任何东西来处理实际的 zip 文件。
编辑:正如 Ants 的回答中所指出的,有System.IO.Packaging.ZipPackage但它看起来确实是为 WPF 设计的,并且用于一般的 zip 文件处理并不是非常方便。值得研究。不过我之前并不知道……绝对值得研究。
没有内置库。有开源选项。
DotNetZip就是其中之一。简单,易于使用。它具有良好的功能: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");
}
}
查看 System.IO.Packaging.ZipPackage 类。
7Zip将提供帮助,并提供多种语言版本
试试System.IO.Compression.DeflateStream
。
我将第二次推荐http://www.7-zip.org/sdk.html LZMA SDK,但它不是 ZIP。
System.IO.Compression 从 .Net 4.5 开始具有ZipArchive类。