C# 编写修补程序应用程序以自动更新某些文件

C# 编写修补程序应用程序以自动更新某些文件,c#,C#,在我最终决定自己发布这个问题之前,我已经阅读了一些问题和答案 我的目标是编写一个补丁程序,它使用最新的文件在某些位置检查某些内容。最好是尽可能少地下载和上传,但检测修改过的文件并替换完整的文件,或者最好只替换二进制增量 我考虑在服务器端对块进行校验和,并在客户端对其进行检查,只获取具有不同校验和的块 我真正想知道的是理论方法,因为我读了一些VCDIFF和其他方法,但我不确定我是否理解它们。对这类问题有共同的解决方法吗?这个想法正确吗?我将如何在C#或Java中实现它 提前谢谢你 根据文件类型(文

在我最终决定自己发布这个问题之前,我已经阅读了一些问题和答案

我的目标是编写一个补丁程序,它使用最新的文件在某些位置检查某些内容。最好是尽可能少地下载和上传,但检测修改过的文件并替换完整的文件,或者最好只替换二进制增量

我考虑在服务器端对块进行校验和,并在客户端对其进行检查,只获取具有不同校验和的块

我真正想知道的是理论方法,因为我读了一些VCDIFF和其他方法,但我不确定我是否理解它们。对这类问题有共同的解决方法吗?这个想法正确吗?我将如何在C#或Java中实现它


提前谢谢你

根据文件类型(文本、二进制),您可以使用diff算法缩小必须发送的更改范围

我们的一位实习生对版本控制管理进行了研究,他在一些研究的基础上提出了一个diff算法。也许它对你有用

你可以在这里找到一些文献:

  • E.Myers,“O(ND)差分算法及其变体”,Algorithmica,p。15, 1986.
  • mmanela,“Diffplex”
  • 如果您想发送文件,我至少会选择校验和和和长度,因为它们肯定是唯一的

    您可以创建如下格式

    • 文件名
    • 校验和
    • 长度
    将其发布到服务器。如果出现以下情况,则让它返回更改:

  • 客户机上还没有该文件
  • 校验和或长度不同

  • 在所有其他情况下,请别管它。

    这看起来很有趣-谢谢!但我想我需要的是知道我该怎么做一个补丁。我会为文件或其一部分创建一个校验和,并将其与我在服务器上预先创建的文件中的某个校验和字符串进行比较吗?我想这是我还不明白的。好吧。。所以我让补丁程序先加载一个包含校验和的文件。然后我读取客户端文件的校验和和日期,并下载具有不同校验和的文件(或文件块)。听起来不错-谢谢:)。如果你不介意的话,我试试看,然后把它标为正确答案。谢谢你的帮助!