Creating Delta Diff Patches of large Binary Files in C#

前端 未结 3 1811
独厮守ぢ
独厮守ぢ 2021-02-06 11:34

I looking for a way to create Delta Diff Patches of Large Binary Files (VMWare Virtual Disk Files). Is there an implementation in C# or any useful methods in the the .NET Framew

相关标签:
3条回答
  • 2021-02-06 12:01

    There's nothing built into the framework to do this.

    You're going to have to look for 3rd party solutions, commercial or free, or write your own.

    A common algorithm is the VCDiff algorithm, which is used by quite a large number of products.

    0 讨论(0)
  • 2021-02-06 12:07

    Here's a C# class that implements Meyers O(ND) Difference Algorithm:

    http://www.mathertel.de/Diff/default.aspx

    Enjoy!

    0 讨论(0)
  • 2021-02-06 12:15

    bsdiff was designed to create very small patches for binary files.

    As stated on its page, it requires max(17*n,9*n+m)+O(1) bytes of memory and runs in O((n+m) log n) time (where n is the size of the old file and m is the size of the new file), so it will take a long time and use a huge amount of memory to create diffs for virtual disk files.

    The original implementation is in C, but a C# port is described here and available here.

    0 讨论(0)
提交回复
热议问题