![为什么两个相似的 zip 文件之间的大小差异这么大?](https://linux22.com/image/1236848/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%A4%E4%B8%AA%E7%9B%B8%E4%BC%BC%E7%9A%84%20zip%20%E6%96%87%E4%BB%B6%E4%B9%8B%E9%97%B4%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%B7%AE%E5%BC%82%E8%BF%99%E4%B9%88%E5%A4%A7%EF%BC%9F.png)
我使用 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 文件。