4

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

假设我有一个文件并且我已经备份了它。后来我对该文件进行了一些更改,因此我想将更改应用到备份版本。由于两个文件可能足够大而更改可能很小,所以我不想重写所有文件,因为我打算通过互联网(可能是 FTP)备份它,这可能需要很多时间。

我如何看待这个(样本):

文件的备份版本(字节)

134 253 637 151

较新版本的文件(字节)

134 624 151 890

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

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

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

我怎样才能做到这一点?我知道这可能是因为我知道实现它的软件(但不知道如何实现)。欢迎和高度评价任何提示、教程等。提前致谢。

4

1 回答 1

8

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

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

C# 中的二进制补丁生成

于 2012-06-18T14:44:32.790 回答