2011-01-28 76 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 2012-01-16 13:15:36

回答

1

只要您有可用的網絡共享,Sync框架就可以通過網絡同步文件。

在FileSyncProvider的構造函數設置rootDirectoryPath到網絡共享位置表明您已經閱讀並寫入權限:

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

    FileSyncProvidor provider = new FileSyncProvider(networkPath); 

要進行雙向同步以這種方式,您將需要創建一個FileSyncProvider對於源系統和目標系統,並使用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; 

這樣做是什麼定義兩個filesync提供商和協調器將在兩個方向上的文件同步。它跟蹤在提供程序中設置的目錄中創建,修改和刪除文件。

所有這一切需要在這一點上是調用同步的SyncOrchestrator:

orchestrator.Synchronize(); 
+0

如果我正在使用使用IP的網絡路徑,例如「\\ 10.1.1.102 \\ sharedPath」,那麼它不能創建實例。它只是給了我「無法找到文件路徑的一部分」的錯誤。同樣的路徑我可以訪問usng運行命令。有什麼問題? – Shubhit304 2016-05-20 13:00:26

相關問題