Henrik P. Hessel
Henrik P. Hessel

Reputation: 36617

Creating Delta Diff Patches of large Binary Files in C#

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 Framework.

Any help is appreciated. Thanks.

rAyt

Upvotes: 6

Views: 9316

Answers (3)

Nicholas Carey
Nicholas Carey

Reputation: 74197

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

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

Enjoy!

Upvotes: 3

Bradley Grainger
Bradley Grainger

Reputation: 28162

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.

Upvotes: 6

Lasse V. Karlsen
Lasse V. Karlsen

Reputation: 391306

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.

Upvotes: 3

Related Questions