2011-01-28 16 views
9

ここで指定したファイル同期の例 - http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=3424は、同じマシン上のファイルの同期についてのみ話します。 WCFのようなものを使用して、ネットワーク上のファイルに対してこの機能を有効にするという実例を見て​​いる人は誰ですか?Microsoft Sync Frameworkを使用してネットワーク上のファイルを同期する

ブライアントの例 - http://bryantlikes.com/archive/2008/01/03/remote-file-sync-using-wcf-and-msf.aspxは完全ではなく、一方向の同期にすぎず、理想的ではありません。

+0

私がしようとしたが、それはできないようです。ファイルプロバイダは多くの内部クラスを使用しているため、プロキシの方法はわかりません。 – Timores

答えて

1

利用可能なネットワーク共有がある限り、Syncフレームワークはネットワーク上のファイルを同期できます。あなたがFileSyncProviderを作成する必要があります。このやり方で双方向の同期を行うには

string networkPath = @"\\machinename\sharedfolderlocation"; 

    FileSyncProvidor provider = new FileSyncProvider(networkPath); 

:FileSyncProviderのコンストラクタで

はにあなたが読んでいるネットワーク共有場所と書き込み権限にrootDirectoryPathを設定しましたソースとデスティネーションの両方のシステムのために、SyncOrchestratorを使用してあなたのために重い作業をしてください。

例:これは何

string firstLocation = @"\\sourcemachine\sourceshare"; 
    string secondLocation = @"\\sourcemachine2\sourceshare2"; 

    FileSyncProvidor firstProvider = new FileSyncProvider(firstLocation); 
    FileSyncProvidor secondProvider = new FileSyncProvider(secondLocation); 

    SyncOrchestrator orchestrator = new SyncOrchestrator(); 
    orchestrator.LocalProvider = firstProvider; 
    orchestrator.RemoteProvider = secondProvider; 
    orchestrator.Direction = SyncDirectionOrder.DownloadAndUpload; 

は2つのFileSyncのプロバイダを定義し、Orchestratorが両方向にファイルを同期します。これは、プロバイダで設定されたディレクトリ内のファイルの作成、変更、および削除を追跡します。

すべてのことは、この時点で必要とされているがSyncOrchestratorに同期を呼び出すことです:

orchestrator.Synchronize(); 
+0

IPを使用してネットワークパスを使用している場合など。 "\\ 10.1.1.102 \\ sharedPath"の場合、インスタンスを作成できません。それはちょうど私に "ファイルパスの一部を見つけることができませんでした"というエラーを与えています。私はusngコマンドにアクセスできます。何が問題なの? – Shubhit304

+0

多分sharedPathの前に\\ですか?よく分かりません。 –

関連する問題