代码之家  ›  专栏  ›  技术社区  ›  G-Man

.NET压缩库的建议[关闭]

  •  24
  • G-Man  · 技术社区  · 15 年前

    除了使用 GZipStream 班级。

    我正在寻找快速和高压缩字节数组,以便能够通过TCP发送它们。

    5 回复  |  直到 6 年前
        1
  •  4
  •   BC.    15 年前

    SharpZipLib 是另一种选择。据说它写得比框架库gzipstream更仔细

        2
  •  11
  •   Marc Gravell    15 年前

    如果你在压缩 数据 然后您可能会看到高密度的序列化,而不是压缩。有点像Protobuf。有一个 few C# implementations here . 对于现有的对象,protobuf net是IMO最简单的实现方法(公开:我是作者,但它是免费的等等)。您只需序列化到流,或者如果需要 byte[] 一个单独的 MemoryStream .

    为了 连续的 在套接字上使用(而不是HTTP的谨慎请求/响应),我建议查看 Serializer.SerializeWithLengthPrefix / Serializer.DeserializeWithLengthPrefix 操作(Protobuf没有 它本身 包括一个终止符,因此需要一个长度前缀来处理单独的消息)。

        3
  •  9
  •   Community CDub    8 年前

    dotnetzip提供本机支持,具有相当友好的API,我的观点比sharpziplib更灵活:

    DotNetZip

    编辑:很遗憾, 多特奈茨 有一些关键问题,项目似乎不再积极维护。因此,这个库不能真正推荐在生产代码中使用。

    更好的选择是使用sharpziplib(如果您遵守他们基于GPL的许可证),其中一个 .NET ports of zlib 或.NET 4.5的zip支持,如中所示 this answer .

        4
  •  1
  •   Joel Mueller    15 年前

    .NET 3+现在具有内置的Zip支持, ZipPackage 班级。

        5
  •  1
  •   code4life    15 年前

    LZMA被认为是最好的压缩工具之一。7-zip是LZMA的公共域SDK实现,可在这里免费下载:

    http://www.7-zip.org/sdk.html

    Wikipedia on compression algorithms :

    7Z的LZMA算法达到更高 压缩比大于RAR,除了 “多媒体”文件,如.wav和.bmp RAR使用专用文件的文件 比LZMA更好的程序。 其他免费压缩软件 通常是NanoZip和Freearc 优于Winrar[8]

    推荐文章