2011-04-05 108 views
6

我正在尋找一個解決方案來比較同一個文件的兩個版本,以獲得更改/差異的表示。基本文件版本比較算法

+0

他們是否文本文件? – BenCr 2011-04-05 10:56:57

+0

任何類型的字節數組。文字,圖片等 – 2011-04-05 20:16:25

回答

13

如果是純文本,那麼Google的diff-match-patch庫應該做你想做的事(它有一個C#版本)。

如果它是二進制數據,然後查看人們將更新應用於可執行文件的事情(bsdiffCourgette)。他們尋找兩個文件之間的最小差異,以便將更小的更新發送給最終用戶。聽起來類似於你的需求。

+0

哇 - 這種方式更有幫助一個答案比我預期在這裏看到 – sehe 2011-04-05 11:02:07

+0

謝謝傑夫!但是比較文本和二進制文件有什麼區別?我的意思是它的字節數組不是嗎? – 2011-04-05 11:35:40

+1

我認爲主要的區別在於文本是逐行顯示的,而您正在尋找一個可讀的差異。對於二進制文件,您正在考慮更改整個文件的最小字節數,而不考慮人類。 – 2011-04-05 12:05:33

1

對於純文本文件,你可以在這裏找到C#的開源實現:https://github.com/mmanela/diffplex

+0

這個項目的新地址是https://github.com/mmanela/diffplex – Aaron 2017-04-04 22:33:47