我正在尝试通过网络保持文件同步。我不想在每次更改时传输整个文件,而是要查找并压缩更改的部分并仅传输那些,非常类似于例如颠覆。是否有可靠的C#解决方案来解决这个问题,还是我必须自己编写?
答案 0 :(得分:2)
关键词是“diff算法”。 c#中有几个实现。
Diff.NET和A Generic, Reusable Diff Algorithm in C#看似合理的选择。 Google会为您找到另外几百种选择。
请注意,大多数diff算法都是专为处理基于行的文本文件而设计的 如果你想要二进制数据或部分行,你需要在选择差异库时更加小心。
如果你想压缩差异,你可以使用System.IO.Compression.GZipStream
类。
答案 1 :(得分:1)
This post可能对您有帮助。
一般情况下,您正在寻找一种方法来对新文件进行二进制比较,然后去掉旧文件,然后将其压缩,压缩,转移到其他系统,解压缩并将其插入文件中。适当的位置。所以听起来你需要在每一端都运行一个应用程序(如果你想让它在两个方面工作,可能都是同一个应用程序)。
答案 2 :(得分:0)
您有哪些格式的更改? byte [],string或stream?