【问题标题】:.NET file compression libraries.NET 文件压缩库
【发布时间】:2010-10-05 01:53:49
【问题描述】:

我正在寻找一个可以在我的项目中使用的包来压缩一些 XML 文件。我通常使用WinRAR 来压缩文件,我认为您可以使用 7-Zip 项目执行此操作,并且可以将其包含在 .NET 项目中。

这是一个类似的堆栈溢出问题,7-Zip (7za.dll) .NET wrapper

代码项目的例子是C# (.NET) Interface for 7-Zip Archive DLLs

我特别想要具有良好压缩率易于使用的东西。提供的示例只是提取文件,我没有特别的时间来实现和测试压缩。

(GZipStream 不够好,它将我的 10 MB 文件压缩到 9 MB,而 WinRAR 将其压缩到 0.5 MB。)

所以,我正在寻找一个库或包(我不在乎它是否花费),我可以将其包含在我的项目中,这样我就可以轻松地压缩和解压缩具有良好性能的文件压缩比,易于包含和使用。

【问题讨论】:

  • WinRAR 将比任何基于 ZIP 的软件包做得更好,因为 RAR 是一种高级算法。您不能使用 RAR,因为该格式受法律保护(不记得是许可还是专利保护它,但我相信它是许可)

标签: .net compression


【解决方案1】:

SharpZipLib 通常是我对 .NET 压缩的默认后备。

您也可以尝试7-Zip SDK(包括 C# 绑定)。它可能提供比 SharpZipLib 更好的压缩率。

【讨论】:

  • 请注意,7Zip SDK 需要 7zip DLL 才能运行,IIRC。
  • @Billy - 您可以将其作为项目包含在项目中,以确保将 DLL 复制到项目的 bin 目录中。
  • 是的——只是指出这一点。并非所有人都处于可以使用 DLL 的场景中。
【解决方案2】:

在查看了各种选项后,我发现SevenZipSharp 是从我的应用程序生成 RAR 文件的最佳和最简单的方法。

【讨论】:

    【解决方案3】:

    我认为 GZipStream 只允许您压缩/解压缩一个文件。如果要压缩一组文件/目录,可以使用 DotNetZip。

    http://dotnetzip.codeplex.com/

    我不确定压缩率。但是 DotNetZip 会生成一个标准的 ZIP 文件。

    【讨论】:

      【解决方案4】:

      我必须为ZipStorer 写一个注释——它还可以解压缩标准的 ZIP 文件[我不知道 zip64 或其他扩展名] :-)

      我之所以使用它,是因为它很小(仅通过提取就可以编译约 6 KB,使其远小于超过 150 KB 的 DotNetZip),并且比 SharpZipLib 更宽松。它还有一个非常小、简单和干净的代码库。但是,如果您确实想要其他功能(gzipbzip2、加密、“更好的”压缩、自解压等),那么您已经知道该去哪里找了。

      【讨论】:

        猜你喜欢
        • 2019-05-07
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 2017-01-02
        • 2011-01-02
        • 2010-11-16
        • 1970-01-01
        相关资源
        最近更新 更多