私はWindows OS用のバックアップアプリケーションを開発しています。まず、フルバックアップを取って、ファイル全体をバックアップメディアにコピーします。次に、増分バックアップを取っている間に、前回のフルバックアップが取られた後でファイルに加えられた変更だけを見つける必要があります。この目的のために、同じファイルの2つのバージョン間のブロックレベルまたはディスクレベルの変更を判断する必要があります。 FileSystemWatcher https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspxクラスについて調べましたが、変更が完了したときに通知するだけです。それは私にファイルのブロックレベルの変更を提供しません。これを達成する他の方法はありますか?同じファイルの2つのバージョン間のブロックレベルまたはディスクレベルの変更を見つけるにはどうすればよいですか?
0
A
答えて
0
すべての書き込み操作(ファイルシステムに行くIRP)は、発生する前と正常に実行された直後に追跡する必要があります。これは、ファイルシステムフィルタドライバの助けを借りて行われます。 C言語で自分自身を作成することも、.NET、C++、Delphi用のドライバとユーザーモードのAPIを含むCallbackFilter製品を使用することもできます。
関連する問題
- 1. 2つのCSVファイルで同様の行を見つけるにはどうすればよいですか?
- 2. javascriptオブジェクト間で同じ値を持つオブジェクトプロパティを見つけるにはどうすればよいですか?
- 3. 2つの同じクラスのdivのスタイルを変更するにはどうすればよいですか?
- 4. バージョン管理システムで特定の変更を見つけるにはどうすればよいですか?
- 5. 2つの* .txtファイルで等しい名前を見つけるにはどうすればよいですか?
- 6. 2つのコロンの間のテキストを見つけるにはどうすればいいですか
- 7. 同じプロジェクトで2つのJavaバージョンを実行するにはどうすればよいですか?
- 8. Hg:2つのリビジョン(または日付)の間に変更したファイルはどのようにして見つけることができますか?
- 9. 2つのバージョンのlibcを同じアプリケーションにリンクするにはどうすればいいですか?
- 10. テストシステムとライブシステムの2つのhtaccessファイルを同じにするにはどうすればよいですか?
- 11. 3Dで円上の2点間の点を見つけるにはどうすればよいですか?
- 12. 2つのシーケンス間で同じ要素を見つける
- 13. オブジェクトの2つのJavaScript配列の違いを見つけるにはどうすればよいですか?
- 14. javadoc実行ファイルのバージョンを見つけるにはどうすればよいですか?
- 15. チェス盤の2点間の最短経路を見つけるにはどうすればよいですか?
- 16. どのように私は同じ2つのエンティティ間の2つの関係をマッピングしていますか?
- 17. 同じ構造の2つのテーブル変数を宣言するにはどうすればよいですか?
- 18. アプリケーションが記述されたcodeigniterのバージョンを見つけるにはどうすればよいですか?
- 19. 2つの異なるオーディオサンプルのスケールを見つけるにはどうすればよいですか?
- 20. 2つのリストから一致するアイテムを見つけるにはどうすればよいですか?
- 21. JavaScriptまたはjQueryの日付ピッカーで2つの日付の間の日を見つけるにはどうすればよいですか?
- 22. 2つのデータセットの平均を見つけるにはどうすればよいですか?
- 23. アレイで2番目に優れたものを見つけるにはどうすればよいですか?
- 24. OSGiの2つのバンドルで同じJARの2つのバージョンを使用するにはどうすればよいですか?
- 25. 2つのオブジェクトの間で変更されたプロパティを見つける
- 26. 2つのプロジェクトを同じソリューション内で「同期」するにはどうすればよいですか?
- 27. レーキタスクのソースファイルを見つけるにはどうすればよいですか?
- 28. 各方向で同じクエリを見つけるにはどうすればよいですか?
- 29. Windowsのバージョンは、私がどのようなOSのバージョンを見つけたい
- 30. Rの同じデータフレーム内の別の列を持つ1つの列の単語の位置を見つけるにはどうすればよいですか?
http://www.daemonology.net/bsdiff/ –
ほとんどのファイル(オフィス文書、画像、ビデオなど)は、インプレースでは変更されませんが、保存すると新しい一時ファイルが作成されますに書き込むと、古いファイルが削除され、新しいファイルの名前が変更されます。データベースなどのレコードベースのアプリケーションだけが、ファイルを上書きします。 –
それはおそらく努力の価値はありません。 1日に1〜2回、増分バックアップを使用して毎週(または毎月)完全バックアップを実行するとします。増分バックアップのために変更されたすべてのファイルについて、最後の完全バックアップに戻って、古いバージョンのファイルをそのバックアップから一部の作業スペースにコピーしてから、それぞれのコピーにその変更を適用する必要があります。フルバックアップ後に行われたすべての増分バックアップ - 新しい差分を見つけるために、再作成されたファイルの内容とバックアップしようとしているファイルの内容を比較します。それは少なくとも*トリプル*バックアップIOのニーズになります。 –