2

次のシナリオで Microsoft 同期フレームワークを使用できるかどうか疑問に思います。

高解像度の画像を含むローカル フォルダー (サブフォルダーを含む) と、低解像度の画像を含む別のフォルダーがあります。両方のフォルダーを同期したい。ポイントは、下位フォルダーの構造とファイルは上位フォルダーと同じにする必要がありますが、画像は低解像度にする必要があるということです。明らかに画像は同じではないので、同期フレームワークはこれを処理できないと思います。

フレームワークが、同期時にファイルを変更してファイルを同期できるようにすると完璧です。これは素晴らしいことですが、これはフレームワークが処理できる範囲を超えていると思います。そのため、ある種の半自動同期について考えていました。つまり、フレームワークに変更を検出させ、これらの変更を読み取り、この変更に従って自分からファイルの作成/削除操作を実行させます。

これは可能ですか?それを行う他の方法はありますか?

ありがとう

4

2 に答える 2

1

私が同様の問題に取り組んでいる最も近いものは次のとおりです。

  • 'fakesync'にフォルダを設定します; そのフォルダへの完全同期を実行します(プレビューモードではなく、実際の同期)。

  • SyncOrchestrator LocalProviderを偽のフォルダーのプロバイダーに設定し、プロバイダーをExplicitDetectChangesに設定します。

  • 偽のプロバイダーに対して意図的にDetectChanges()を呼び出さないでください(偽のフォルダーで何が起こったのかを知りたくありません)。

  • 同期(SyncDirectionOrder.Download)を実行し、OnApplyingChangeで変更されたファイルの名前をキャッチします。これにより、すべてのファイルが偽のフォルダーに送信され、メタデータが更新されます

  • メタデータファイルを除く、偽のフォルダ内のすべてのファイルを削除します。

次回同期するときは、偽のフォルダー内のメタデータファイルが変更を保持する必要があるため、変更されたファイルのみが表示されます。私のシナリオはあなたのシナリオとは少し違うと思いますが、とにかく役立つことを願っています。

于 2012-07-31T08:34:25.727 に答える
1

Sync Framework のファイル同期プロバイダーにはプレビュー モードがあり、実際の同期を行わずに変更を検出できます...その後、変更をループして他の処理を行うことができます...

于 2012-05-29T02:43:30.130 に答える