Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 增量文件备份是如何编码的?_C#_Backup - Fatal编程技术网

C# 增量文件备份是如何编码的?

C# 增量文件备份是如何编码的?,c#,backup,C#,Backup,对于备份应用程序,一种良好且节省空间的备份方法是检测文件中的更改。一些在线服务,如Dropbox,也可以这样做,因为Dropbox包含版本历史记录。备份应用程序如何检测并存储文件中的更改 如果您有一个已经备份过的非常大的文件,并且您做了一个小的更改(例如在Microsoft Word文档中),应用程序如何检测更改并对其进行处理?如果文件经常发生更改,则必须有一种高效的算法,只处理更改,而不处理整个文件。在C#.NET中有这样做的算法吗 编辑:我试图找出如何将两个文件编码为原始文件和更改(采用VC

对于备份应用程序,一种良好且节省空间的备份方法是检测文件中的更改。一些在线服务,如Dropbox,也可以这样做,因为Dropbox包含版本历史记录。备份应用程序如何检测并存储文件中的更改

如果您有一个已经备份过的非常大的文件,并且您做了一个小的更改(例如在Microsoft Word文档中),应用程序如何检测更改并对其进行处理?如果文件经常发生更改,则必须有一种高效的算法,只处理更改,而不处理整个文件。在C#.NET中有这样做的算法吗


编辑:我试图找出如何将两个文件编码为原始文件和更改(采用VCDIFF格式或其他格式)。我知道如何使用该格式并对其进行解码。

要检测更改,可以计算文件原始版本和修改版本的哈希代码(如MD5)。如果它们相同,则不会进行任何更改。
我认为DropBox有自己的协议来检测文件的哪一部分被修改
您可以找到自己的方法,例如,将文件划分为固定大小的部分,存储它们的哈希代码。当客户端下载文件时,将这些信息发送给客户端。修改文件后,重新计算部件的哈希代码,将其与原始哈希代码进行比较,上载修改的部件,从原始部件和修改的部件重建文件。
是一个开源工具,使用增量编码同步文件。

----------------------------------------------------
编辑:我上面的想法非常简单,效率不高。
你可以看看研究论文中解释的并用多种语言实现的

我正在寻找一种处理变化的方法。如果在一个非常大的文本文件中添加了一个小词,这个系统就没有效率,尤其是在开始的时候。文件中的每个块在小更改后都将被修改。我需要它来处理修改、添加数据和删除数据。@PhoenixLogan:你说得对,我的想法很简单,效率不高。我编辑了我的答案。VCDIFF在压缩文件上工作。我建议阅读以下内容: