为什么两个相似的 zip 文件之间的大小差异这么大?

为什么两个相似的 zip 文件之间的大小差异这么大?

我使用 WinZip 压缩整个代码目录,然后将其发送给我的同事。他进行修改后将代码目录发回给我。

忽略这样一个事实:当我们都在处理代码时,这不是保持代码整洁的好方法,我注意到他的 zip 文件比我的小得多,里面的数据基本相同(我的大约 36,000 KB,他的大约 2,000 KB)。我相信他也在使用 WinZip。

这是怎么回事?我怎样才能使我的“更加压缩”?

答案1

如果你们都使用 WinZip,那么文件应该大小相同(假设你们使用相同的压缩算法)。

我能想到的唯一其他情况是,你向他发送了所有内容 - 源代码、中间文件、二进制文件、图像等,而他只向你发送了代码。很有可能你包含了一些无法很好地压缩的内容,这会增加你的存档的大小。

并排打开两个档案并比较它们的内容。看看其中一个(你的)是否比另一个(他的)包含更多文件。

您没有说您使用的是什么语言,但假设是 C++(作为示例),只需将 *.cpp 和 *.h(或 *.hpp,取决于您的编译器)添加到档案中。

答案2

在 winzip 对话框中设置“最大压缩”或“最佳压缩”设置。或者使用更好的算法,这可以通过使用 7zip 等压缩器(使用 7zip 格式)来实现。尽管对于普通内容来说,这种收益通常不值得。LZMA 是一种很好的压缩算法,但并非每个软件都支持。

注意:EXE 压缩效果很差(如果您将 exe 留在文件夹中,请检查,否则将不会出现这种情况),有专门的 exe 压缩器。同样,这完全取决于您真正需要制作多少更轻量的软件包,以及投入的时间和精力。

Winzip 标准版或 Winrar 无论如何都是确保文件无问题到达的好方法,如果以某种方式压缩,人们通常无法打开某些文件。我和一个朋友一起工作,为了一起工作,我们使用 7zip,采用 7z 格式和最高压缩设置。

答案3

可能还与固体与非固体压缩如果有的话,这可能会产生很大的不同许多小文件。

例如,如果你的朋友使用如下格式特格孜(tar + gzip),(或7z或者压缩包与具有可靠压缩选项的程序不同,Winzip 会先将所有小文件打包为一个大文件,然后再将它们作为一个整体进行压缩。相反,Winzip 会先压缩每个文件,然后将它们打包成一个 .zip 文件。

相关内容