在C#中创建大型二进制文件的Delta Diff补丁

我正在寻找一种方法来创建大型二进制文件的Delta Diff补丁(VMWare虚拟磁盘文件)。 是否有C#中的实现或.NET Framework中的任何有用方法。

任何帮助表示赞赏。 谢谢。

rAyt

框架中没有任何东西可以做到这一点。

您将不得不寻找第三方解决方案,商业或免费,或自己编写。

常见的算法是VCDiff算法,其被相当多的产品使用。

bsdiff旨在为二进制文件创建非常小的补丁。

如其页面所述,它需要max(17*n,9*n+m)+O(1)字节的内存并以O((n+m) log n)时间运行(其中n是旧文件和m是新文件的大小),因此需要很长时间并使用大量内存来为虚拟磁盘文件创建差异。

最初的实现是在C中,但这里描述了一个C#端口,可在此处获得 。

这是一个实现Meyers O(ND)差分算法的C#类:

http://www.mathertel.de/Diff/default.aspx

请享用!