比较两个版本的文件并将更改应用于旧文件

Gaa*_*aRa 4 c# algorithm file-comparison

我一直在搜索和搜索这个问题很多,我已经知道如何比较两个文件(哈希,校验和等).但这不是我需要的.我需要的内容如下所述.

让我们假设我有一个文件,我已经备份了它.后来我对这个文件做了一些更改,所以我想对备份版本应用更改.由于两个文件可以很大并且更改可以很小,我不想重写所有文件,因为我打算通过互联网(可能是FTP)备份它可能需要花费很多时间.

我怎么看这个(样本):

备份版本的文件(字节)

134 253 637 151
Run Code Online (Sandbox Code Playgroud)

较新版本的文件(字节)

134 624 151 890
Run Code Online (Sandbox Code Playgroud)

我们不应该重写所有字节,而应该:

  1. 改变253624(变化字节)
  2. 删除637字节(删除字节)
  3. 890在文件末尾(插入字节)

在每种情况下,1,2,3选项不一定同时出现.请注意,备份文件可能位于其他位置,我只能通过Internet访问它(服务器可以返回一些内容,以便我们可以比较文件).

我怎么能得到这个?我知道这可能是因为我知道软件在哪里实现(但无法找到方法).任何提示,教程等都受到欢迎和高度评价.提前致谢.

Eri*_* J. 8

您正在尝试解决每个MMORPG已解决的相同问题...创建并应用小补丁文件来更新较旧版本的大型二进制文件.

这是一个经过充分研究的问题,并且有许多解决方案.有关现有的几个选项,请参阅

C#中的二进制补丁生成