在我最终决定自己发布问题之前,我已经阅读了几个问题和答案。
我的目标是编写一个修补程序,它使用最新文件检查某些位置的某些内容。它最好是尽可能少地下载和上传,但检测修改后的文件并替换完整文件或 - 最好 - 只有二进制增量。
我考虑过在服务器端制作块的校验和,并在客户端上检查它们,并且只获取那些具有不同校验和的块。
我真正想知道的是理论方法,因为我读了一些VCDIFF和其他方法,但我不确定我理解它们。对这类问题有一个共同的方法吗?大块的想法是正确的吗?我将如何在C#或Java中实现它?
提前谢谢!
答案 0 :(得分:2)
根据文件类型(文本,二进制),您可以使用diff算法缩小必须发送的更改。
我们的一位实习生已经完成了版本控制管理的研究,他根据一些研究提出了一种差异算法。也许这对你有用。
你可以在这里找到一些文献:
如果你想发送文件,我至少会检查校验和长度,因为这些文件肯定是唯一的。
您可以创建类似
的格式将其发布到服务器。如果出现以下情况,请让它返回:
在所有其他情况下,请保留。