C# 如何仅使用跟踪的更改来压缩文件?

C# 如何仅使用跟踪的更改来压缩文件?,c#,file,compression,change-tracking,C#,File,Compression,Change Tracking,我正在尝试通过网络保持文件同步。与每次更改时传输整个文件不同,我希望查找并压缩更改的部分,只传输那些部分,非常类似于subversion。这个问题有可靠的C#解决方案吗,还是我必须自己写?您有哪些格式的更改?字节[],字符串还是流 请看这里: 关键词是“差分算法”。在c#中有几种实现 看起来是合理的选择。谷歌会为你找到另外几百个选择 请注意,大多数diff算法都是经过精心设计的,用于处理基于行的文本文件。 如果要区分二进制数据或部分行,则在选择差异库时需要更加小心 如果您也想压缩差异,可以使用该

我正在尝试通过网络保持文件同步。与每次更改时传输整个文件不同,我希望查找并压缩更改的部分,只传输那些部分,非常类似于subversion。这个问题有可靠的C#解决方案吗,还是我必须自己写?

您有哪些格式的更改?字节[],字符串还是流

请看这里: 关键词是“差分算法”。在c#中有几种实现

看起来是合理的选择。谷歌会为你找到另外几百个选择

请注意,大多数diff算法都是经过精心设计的,用于处理基于行的文本文件。
如果要区分二进制数据或部分行,则在选择差异库时需要更加小心

如果您也想压缩差异,可以使用该类。

可能会对您有所帮助


一般来说,您正在寻找一种方法,将新文件与旧文件进行二进制比较,然后只去掉更改的字节,压缩它们,将它们传输到另一个系统,解压缩它们并将它们插入文件中的适当位置。因此,听起来您需要在每一端运行一个应用程序(如果您希望它同时工作,可能是同一个应用程序)。

我还没有更改,这是问题的一部分。:)文件本身是byte[]我不希望使用外部程序。是的,我将在两台机器上运行应用程序,正如您所描述的。链接的帖子看起来很有趣。听起来像是一个有趣的项目,希望这会有所帮助。是的,它主要是关于二进制文件的。链接看起来很不错。