4

私はこの質問について多くのことを検索してグーグルで調べてきましたが、2つのファイル(ハッシュ、チェックサムなど)を比較する方法をすでに知っています。しかし、それは私が必要としているものではありません。必要なものを以下に説明します。

ファイルがあり、それをバックアップしたとしましょう。後でこのファイルにいくつかの変更を加えたので、バックアップバージョンに変更を適用したいと思います。2つのファイルは十分に大きく、変更は小さい可能性があるため、すべてのファイルを書き直したくありません。インターネット(FTPなど)には時間がかかる可能性がありますが、バックアップを計画しているためです。

私がこれをどのように見るか(サンプル):

ファイルのバックアップバージョン(バイト)

134 253 637 151

新しいバージョンのファイル(バイト)

134 624 151 890

すべてのバイトを書き換える代わりに、次のことを行う必要があります。

  1. に変更(バイト253を変更)624
  2. バイトを削除637(バイトを削除)
  3. 890ファイルの終わりに書き込む(バイトを挿入)

1,2,3オプションは、必ずしも一度に表示されるとは限りません。バックアップファイルは別の場所にある可能性があり、インターネット経由でしかアクセスできないことに注意してください(サーバーはファイルを比較できるように何かを返す可能性があります)。

どうすればこれを達成できますか?私はそれが実装されているソフトウェアを知っていることが原因である可能性があることを知っています(しかし、その方法を見つけることができませんでした)。ヒントやチュートリアルなどは歓迎され、高く評価されています。前もって感謝します。

4

1 に答える 1

8

あなたはすべてのMMORPGが解決したのと同じ問題を解決しようとしています...小さなパッチファイルを作成して適用し、大きなバイナリの古いバージョンを更新します。

これはよく研究された問題であり、そこには多くの解決策があります。いくつかの既存のオプションについては、を参照してください。

C#でのバイナリパッチ生成

于 2012-06-18T14:44:32.790 に答える