C# 增量文件备份是如何编码的?
对于备份应用程序,一种良好且节省空间的备份方法是检测文件中的更改。一些在线服务,如Dropbox,也可以这样做,因为Dropbox包含版本历史记录。备份应用程序如何检测并存储文件中的更改 如果您有一个已经备份过的非常大的文件,并且您做了一个小的更改(例如在Microsoft Word文档中),应用程序如何检测更改并对其进行处理?如果文件经常发生更改,则必须有一种高效的算法,只处理更改,而不处理整个文件。在C#.NET中有这样做的算法吗C# 增量文件备份是如何编码的?,c#,backup,C#,Backup,对于备份应用程序,一种良好且节省空间的备份方法是检测文件中的更改。一些在线服务,如Dropbox,也可以这样做,因为Dropbox包含版本历史记录。备份应用程序如何检测并存储文件中的更改 如果您有一个已经备份过的非常大的文件,并且您做了一个小的更改(例如在Microsoft Word文档中),应用程序如何检测更改并对其进行处理?如果文件经常发生更改,则必须有一种高效的算法,只处理更改,而不处理整个文件。在C#.NET中有这样做的算法吗 编辑:我试图找出如何将两个文件编码为原始文件和更改(采用VC
编辑:我试图找出如何将两个文件编码为原始文件和更改(采用VCDIFF格式或其他格式)。我知道如何使用该格式并对其进行解码。要检测更改,可以计算文件原始版本和修改版本的哈希代码(如MD5)。如果它们相同,则不会进行任何更改。
我认为DropBox有自己的协议来检测文件的哪一部分被修改
您可以找到自己的方法,例如,将文件划分为固定大小的部分,存储它们的哈希代码。当客户端下载文件时,将这些信息发送给客户端。修改文件后,重新计算部件的哈希代码,将其与原始哈希代码进行比较,上载修改的部件,从原始部件和修改的部件重建文件。
是一个开源工具,使用增量编码同步文件。
----------------------------------------------------
编辑:我上面的想法非常简单,效率不高。
你可以看看研究论文中解释的并用多种语言实现的。我正在寻找一种处理变化的方法。如果在一个非常大的文本文件中添加了一个小词,这个系统就没有效率,尤其是在开始的时候。文件中的每个块在小更改后都将被修改。我需要它来处理修改、添加数据和删除数据。@PhoenixLogan:你说得对,我的想法很简单,效率不高。我编辑了我的答案。VCDIFF在压缩文件上工作。我建议阅读以下内容: