基础文件版本差异算法

6
我正在寻找一种解决方案,用于比较同一文件的两个版本以获取变更/差异的表示。

任何类型的字节数组。文本、图像等。 - Andreas Zita
2个回答

14
如果是纯文本,那么Google的diff-match-patch库应该可以实现你想要的功能(它有一个C#版本)。
如果是二进制数据,则需要研究人们如何将更新应用于可执行文件(bsdiffCourgette)。他们寻找两个文件之间的最小差异,以便向最终用户发送较小的更新。听起来与您的需求类似。

哇 - 这个回答比我在这里预期的要有用得多。 - sehe
谢谢Jeff!但是比较文本和二进制文件有什么区别呢?我的意思是,它们不都只是字节数组吗? - Andreas Zita
1
我认为主要的区别在于文本逐行工作,而您正在寻找可读性更好的差异。对于二进制文件,您需要查看跨文件更改最少数量的字节,而不考虑人类因素。 - Jeff Foster
我在github.com/LogosBible/bsdiff.net上尝试了C#转换,效果非常好!但是,我注意到我只能向上修补文件,而不能再向下修补。我需要一种方法将修补后的文件恢复到原始状态。我想知道是否很难自己制作一个... - Andreas Zita

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接