【问题标题】:Microsoft file sync Delete fies in source folder is not syncing with destination folderMicrosoft 文件同步删除源文件夹中的文件未与目标文件夹同步
【发布时间】:2014-04-24 20:33:57
【问题描述】:

我是 Sync Framework 的新手,我认为我在这里遗漏了一些重要和基本的东西。

我在网络上有一个源文件夹和目标文件夹。我试图以一种方式同步这两个文件夹,源→目标。

一切正常,除了当我删除源文件夹中的一些文件时,在下一次同步时,我希望这些文件在目标中被删除,但这不会发生。

我的代码sn-p:

private  void SyncronizeFolders(string source, string destination)
{
    FileSyncOptions options = FileSyncOptions.ExplicitDetectChanges |
                             FileSyncOptions.RecycleDeletedFiles | FileSyncOptions.RecyclePreviousFileOnUpdates |
                             FileSyncOptions.RecycleConflictLoserFiles;
    FileSyncScopeFilter filter = new FileSyncScopeFilter();
    filter.FileNameExcludes.Add("*.metadata");

    // Create file system provider
    FileSyncProvider sourceprovider = new FileSyncProvider(Guid.NewGuid(), _sourcefolder, filter, options);
    FileSyncProvider destinationprovider = new FileSyncProvider(Guid.NewGuid(), _destinationfolder, filter, options);

    sourceprovider.Configuration.ConflictResolutionPolicy = ConflictResolutionPolicy.SourceWins;
    destinationprovider.Configuration.ConflictResolutionPolicy = ConflictResolutionPolicy.SourceWins;

    // Ask providers to detect changes
    sourceprovider.DetectChanges();
    destinationprovider.DetectChanges();

    // Synchronization of 2 Folders
    SyncOrchestrator agent = new SyncOrchestrator();
    agent.LocalProvider = sourceprovider;
    agent.RemoteProvider = destinationprovider;
    agent.Direction = SyncDirectionOrder.Upload;
    agent.Synchronize();
}

【问题讨论】:

  • 始终包含主要语言的标签(不包括版本),否则大多数回答该语言问题的人不会注意到您的问题。
  • 当然。我会从下一次。这是我第一次在这个网站上发帖。谢谢你的建议。
  • 我遇到了完全相同的问题。你有想过这个吗?
  • 我认为您需要删除该行 >> filter.FileNameExcludes.Add("*.metadata");并且在所有情况下都会同步。

标签: c# file microsoft-sync-framework


【解决方案1】:

您在每次调用时都使用Guid.NewGuid() - 此 GUID 存储在同步框架用于存储其关于源文件和目标文件的知识的元数据中。如果您每次都提供一个新的 GUID,那么它就不能使用之前收集的元数据。

用两个固定的 GUID(一个用于源,一个用于目标)替换 Guid.NewGuid(),它会开始正常工作。

也没有必要排除 *.metadata,因为这是框架具有的内置排除项之一,根据 this MSDN article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多