32

.NET 3.5 中有内置的 zip 库吗?

如果没有,什么是流行的开源 .net zip 库。

4

8 回答 8

32

编辑:请参阅注释中的注释 - SharpZipLib 现在未维护,您可能希望避免它。

开源:#ZipLib

我相信System.IO.Compression命名空间中的类可以很好地压缩/解压缩单个数据流,但是框架中没有内置任何东西来处理实际的 zip 文件。

编辑:正如 Ants 的回答中所指出的,有System.IO.Packaging.ZipPackage但它看起来确实是为 WPF 设计的,并且用于一般的 zip 文件处理并不是非常方便。值得研究。不过我之前并不知道……绝对值得研究。

于 2009-02-26T23:55:30.510 回答
23

没有内置库。有开源选项。

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");
        }
    }
于 2009-03-02T22:11:29.773 回答
10

查看 System.IO.Packaging.ZipPackage 类。

于 2009-02-27T05:02:10.100 回答
6

7Zip将提供帮助,并提供多种语言版本

于 2009-02-27T00:00:06.113 回答
4

http://www.icsharpcode.net/OpenSource/SharpZipLib/

于 2009-02-26T23:57:42.530 回答
1

试试System.IO.Compression.DeflateStream

于 2009-02-26T23:55:01.447 回答
1

我将第二次推荐http://www.7-zip.org/sdk.html LZMA SDK,但它不是 ZIP。

  1. 它在公共领域
  2. 减压速度很快
  3. 它具有完全托管的实施
  4. 压缩比 ZIP/RAR 好很多
  5. 它的占地面积非常小
  6. 它可以作为流工作
于 2009-04-26T08:17:58.490 回答
1

System.IO.Compression 从 .Net 4.5 开始具有ZipArchive类。

于 2014-04-29T12:17:49.910 回答