首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zlib的gzip压缩和.NET的GZipStream使用的压缩有什么不同?

zlib的gzip压缩和.NET的GZipStream使用的压缩有什么不同?
EN

Stack Overflow用户
提问于 2011-06-30 22:08:20
回答 2查看 1.3K关注 0票数 2

有一个奇怪的问题--我的一个应用程序套件必须读取/写gzip--在Windows和Linux上都使用的压缩文件,而且我发现我在Linux上使用zlib生成的文件比我在Linux上使用GZipStream生成的文件大2-3倍。他们在任何一个平台上都能很好地阅读,所以我知道不管是哪个平台创建了文件,压缩都是正确的。问题是,文件是在不同时间通过网络传输的,很明显,文件大小是个问题。

我的问题是:

  1. 有没有其他人遇到过这种
  2. ,两者之间是否有一些文档上的区别?我知道GZipStream并没有提供像zlib那样指定压缩级别的方法,但是我在zlib端使用的是最大压缩。假设GZipStream也是为了使用最大压缩而编写的,难道我不应该看到相对相同的文件大小吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-28 13:07:44

答案是..。Linux版本从一开始就没有压缩数据。经过大量的调试才发现了导致这一错误的原因,但经过纠正后,这两种平台的大小已经相当了。

票数 1
EN

Stack Overflow用户

发布于 2011-06-30 22:31:09

我认为您之所以会遇到这种情况,不是因为所使用的压缩算法,而是因为文件是如何被压缩的。来自zLib手册:

“zlib格式被设计成紧凑和快速,可以在内存和通信通道上使用,gzip格式是为文件系统上的单文件压缩而设计的,在维护目录信息方面比zlib具有更大的头,并且使用与zlib不同的、更慢的检查方法。”

我认为所发生的事情是,您的linux机器上的文件被合并成一个文件,然后这个文件被压缩。在WIndows中,我认为它压缩了每个单独的文件,然后将它们存储到一个文件中。

这是我的理论,但没有什么能真正支持它。为了满足我的好奇心,我想过会儿在家里试一试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6541669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档