2017-07-08 2 views
0

Je voudrais implémenter un simple fournisseur personnalisé pour faire la synchronisation de fichiers entre les fichiers locaux et un serveur webdav à l'aide de microsoft sync framework. Le seul exemple pour un simple fournisseur de synchronisation de fichiers que j'ai trouvé est pour un usage local: https://code.msdn.microsoft.com/windowsdesktop/File-Sync-with-Simple-c497bf87/sourcecode?fileId=19013&pathId=1569663015C# Microsoft Sync Framework - MetadataStore sur le serveur WebDAV

Mon problème est que je ne sais pas comment ajuster le MetadataStore pour être sauvegardé sur le serveur distant. Voici quelques changements que j'ai apportées au code:

public MySimpleSyncFileProvider(Guid guidReplica, string rootFolder) 
    { 
     this._replicaId = new SyncId(guidReplica); 
     this._rootFolder = "/"; 

     // Find location for metadata store 
     string metaDir = Path.Combine(_rootFolder, ".metadata"); 
     WebDAV.CreateDirectory(metaDir); 
     WebDAV.SetAttributes(metaDir, WebDAVFileAttribute.isHidden); 

     string metadataPath = Path.Combine(_rootFolder, ".metadata\\filemeta"); 

     // Open it 
     if (WebDAV.Exists(metadataPath)) 
      this._metadataStore = SqlMetadataStore.OpenStore(metadataPath); //TODO 
     else 
      this._metadataStore = SqlMetadataStore.CreateStore(metadataPath); //TODO 
    } 

j'aurais changer la méthode « OpenStore » et « CreateStore », mais je ne pouvais pas remplacer le SqlMetadataStore.

Avez-vous des suggestions? Ou peut-être un exemple comment implémenter un FileSyncProvider personnalisé pour les services webdav?

S'il vous plaît aidez-moi.

Répondre

0

J'ai résolu ce problème en stockant simplement les fichiers MetadataStore sur la machine locale et en utilisant des partages réseau.