2012-02-25 7 views
0

私は現在、基本的にマスターディレクトリと子ディレクトリの間でファイルを同期するアプリケーションを構築しています。Microsoft Sync Framework 2.0を使用して2つのディレクトリのファイルを同期する際の助けが必要です

ルールは、以下の通りである:子で

  1. ファイルは、マスターとその逆に同期されなければなりません。
  2. 子で削除されたファイルは、マスターで削除しないでください。
  3. 子で削除された、マスターに存在するファイルは、子に同期されて戻されます。
  4. マスターで削除されたファイルは、その子で削除されます。

これまでのところ、私は1と2に対処することができましたGoogleやMSDNからの例を使用したが、今私は現在、私はMicrosoftの同期フレームワークを使用していますし、希望の3で立ち往生し、4

よルール3と4を同期フレームワークを使用して動作させる方法を知る。

ルール3の問題は、ファイルが子で削除されたときに、同期がトリガーされたときにそのファイルを再作成しないことです。

ルール4については、まだこれを行う方法がわかりません。どんなアイデアも素晴らしいだろう。

助けてください。ありがとうございます

EDIT:子ディレクトリ内のすべての同期の後にfilesync.metadataファイルを削除することにより、ルール3を作成しました。これが後で問題を引き起こすかどうかは分かりません。

+0

あなたはまだこれに対してクリーンな解決策を見つけましたか?私はJuneTのコメントを理解していますが、どのように推薦を実装するのか明確ではありません。私はまったく同じ要件を持っています。私はfilessync.metedataを削除するという考えが本当に最善のアプローチであるかどうか分からないのですか? – ChiliYago

答えて

0

filesync.metadataを削除すると、以前に同期されたものよりもすべての情報が消去されます。効果的に再初期化しています。 ApplyingChangeイベントの変更を傍受し、必要のない変更をスキップして、必要なカスタムアクションを実行することをお勧めします。

+0

はい。私は以前の同期データを消去することを理解します。しかし、それをそのまま残すと、同期フレームワークには既に削除されたファイルが含まれないため、同期が実行されたときに再作成されません。 – RavenXV

+0

同期フレームワークの変更列挙は増分変更に基づいています...削除が検出されましたそれが適用されます。他のレプリカ内の削除されたファイルの対応部分が変更されていない場合、それは決して検出されません。同期は2つのレプリカの違いではなく、増分変更に基づいて行われます。 – JuneT

関連する問題