0

たとえば、40Mb のファイルがあり、20Kb 程度の小さな変更を加えたいとします。

結果のファイルと元のファイルとの差分を簡単に作成できます。変更を加えているアプリケーションを使用して手動で作成するか、元のファイルと結果のファイルの両方を取得してそこから差分を生成します (Rabin の多項式指紋アルゴリズムなど)...

問題は、その差分 (新しいファイル) の効果的な結果を読み取るために、元の差分にパッチを適用し、結果の新しいファイルを作成して読み取る必要があることです...これにより、わずか 20kb の 2 つの 40mb ファイルが作成されます。それらの違い。最初のファイルを diff と組み合わせて使用​​し、結果の最終ファイルをまったく新しいコピーを作成することなく (とにかく読み取るために) 解析できることは論理的に思えます。

xdiff を調べたところ、2 つのファイルを指定して diff を作成する機能、またはファイルにパッチとして diff を適用する機能がありますが、元のファイルと diff ファイルが提供されたときに単純なファイル ハンドルを取得する機能はありません。

そのようなものは存在しますか?読み取り専用の場合でも、大きなファイルのストレージスペースを節約するのに非常に役立ちます(書き込み操作は、おそらく新しい差分に書き込むことができます)。

どの言語での例でも問題ありませんが、すぐに利用できる場合は c、python、または php が最適です。

4

2 に答える 2

0

TortoiseMerge を使用して差分を表示する:

TortoiseMerge を使用して、パッチを作成せずに差分を表示できます。

これがどのように見えるかの概要です。ガイドダウンロードリンクも添付しています。それがあなたに合わない場合は、代替の差分ツールの優れたリストを次に示します。

さらなる考慮事項:

変更を行う頻度とファイル サイズの節約への関心によっては、バージョン管理システムの使用を検討することをお勧めします (おそらく既に行っているでしょう)。一般的なオプションには、SVNGit、およびMercurialが含まれます。

于 2013-03-27T17:37:16.433 に答える