2011-01-28 77 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

相关问题