Binary 有用的二进制差异工具(msdn[apatch和mpatch]、xdelta、bsdiff、vbindiff和winmerge除外)

Binary 有用的二进制差异工具(msdn[apatch和mpatch]、xdelta、bsdiff、vbindiff和winmerge除外),binary,patch,Binary,Patch,我需要一个二进制diff工具,它可以从比较过的8MB文件(.dat压缩文件)生成补丁文件,并可以将生成的补丁文件合并到旧的.dat文件(大小8MB) 我尝试使用msdn的apatch和mpatch,但mpatch在区分两个8MB文件时会产生7MB的差异或修补文件,而据推测,所述修补文件的大小应为1MB。另一个问题是,当将所述补丁文件合并到另一个.dat文件(35MB)时,需要一个多小时,但apatch exe仍然不会生成新的.dat文件 我使用了xdelta,但也出现了有关文件大小的问题 不能将

我需要一个二进制diff工具,它可以从比较过的8MB文件(.dat压缩文件)生成补丁文件,并可以将生成的补丁文件合并到旧的.dat文件(大小8MB)

我尝试使用msdn的apatch和mpatch,但mpatch在区分两个8MB文件时会产生7MB的差异或修补文件,而据推测,所述修补文件的大小应为1MB。另一个问题是,当将所述补丁文件合并到另一个.dat文件(35MB)时,需要一个多小时,但apatch exe仍然不会生成新的.dat文件

我使用了xdelta,但也出现了有关文件大小的问题

不能将WinMerga用作,因为我使用的是.dat文件,也不能使用vbindiff,因为这只是为了显示文件之间的差异

有人知道其他二进制补丁工具吗


非常感谢。

在扩散压缩格式时,您必须先解压缩它们

Xdelta会自动为一些格式执行此操作,例如gzip,但可能不会。dat

提到了一些二进制补丁实用程序

提到了更多的二进制补丁实用程序

提到了更多的二进制补丁实用程序

但我认为你会有同样的问题:

对于大多数压缩工具,两个压缩文件的“第一部分”将是相同的,直到发生第一次更改为止。 两个压缩文件的“最后一部分”将完全不同。 任何diff工具(不会通过将文件识别为压缩文件并解压缩来欺骗)都将创建一个补丁文件,该文件或多或少是新文件“最后一部分”的大容量副本。 在您的例子中,新文件的“最后一部分”显然大约有7MB长

“据说,所说的补丁文件大小应该是1MB。”你怎么可能知道呢

给定两个压缩文件,diff实用程序将生成一个补丁文件,该文件不会比这些文件小多少

正如Liam所说,在压缩之前,您需要区分这些文件的原始版本。 或者,您需要将.dat文件解压缩为临时文件,并区分这些临时文件

(可选地,您可以使用任意数据压缩实用程序压缩修补程序文件)

我不能告诉你如何解压你的.dat文件,因为我不知道你有多少种.dat文件