C#:以编程方式将合并/补丁应用于文件?

时间:2010-10-11 21:06:35

标签: c# merge patch

我有一个需要几个大(~4或5mb)文件的程序。每周一次,每周都有这些文件的新版本,只有很小的变化。通常只添加或删除几行。

当程序启动时,如果有Internet连接,我希望程序自动更新这些文件。我不想下载整个新版本的文件,而是根据客户端更新文件的版本下载一个补丁。

我怎么能这样做?

我可以完全控制服务器。

2 个答案:

答案 0 :(得分:1)

如果您对文件中的内容没有任何了解或者服务器中有任何设施允许您请求差异,那么这是一个难以解决的问题。您编写的任何程序无法通过查看旧文件和新文件来确定差异,无论如何都必须下载它。

答案 1 :(得分:0)

C#没有任何内置工具可以做到这一点,但听起来你的要求并不复杂。看看Unix上的diff和ed如何用于基于易于理解的delta来修补文本文件。当然,您应该根据哈希检查生成的文件,如果不正确,则回退到完整下载。