2011-01-28 9 views
9

El ejemplo de sincronización de archivos proporcionado aquí - http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=3424 solo habla de la sincronización de archivos en la misma máquina. ¿Alguien ha encontrado un ejemplo práctico de usar algo como WCF para permitir que esto funcione para archivos a través de una red?Uso de Microsoft Sync Framework para sincronizar archivos en la red

El ejemplo de Bryant - http://bryantlikes.com/archive/2008/01/03/remote-file-sync-using-wcf-and-msf.aspx no está completo y solo es una sincronización de una sola dirección y es menos que ideal.

+0

he intentado, pero no parece posible. El proveedor de archivos usa muchas clases internas y no veo forma de proxy para ellos. – Timores

Respuesta

1

El marco Sync puede sincronizar archivos en la red siempre que tenga un recurso compartido de red disponible.

En el constructor de la FileSyncProvider establecer el rootDirectoryPath a una ubicación de recurso compartido de red que ha de leer y escribir a:

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

    FileSyncProvidor provider = new FileSyncProvider(networkPath); 

Para realizar una sincronización bidireccional de esta manera que se necesitan para crear un FileSyncProvider tanto para el sistema de origen como para el de destino y utiliza SyncOrchestrator para hacer el trabajo pesado por ti.

Un ejemplo:

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; 

Lo que esto hace es definir dos proveedores FileSync y el orquestador se sincronizarán los archivos en ambas direcciones. Realiza un seguimiento de las creaciones, modificaciones y eliminaciones de archivos en los directorios establecidos en los proveedores.

Todo lo que se necesita en este momento es llamar Sincronizar en el SyncOrchestrator:

orchestrator.Synchronize(); 
+0

si estoy usando la ruta de red usando IP, p. "\\ 10.1.1.102 \\ sharedPath", entonces no puede crear la instancia. Simplemente me está dando el error de que "no pude encontrar parte de la ruta del archivo". la misma ruta a la que puedo acceder usng run command. ¿¿¿Cual puede ser el problema??? – Shubhit304

+0

Tal vez sea el \\ before sharedPath? No estoy seguro. –

Cuestiones relacionadas