在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#端口,可在此处获得 。