同步文件在同步时更改文件

时间:2012-05-28 18:41:52

标签: visual-studio-2010 synchronization microsoft-sync-framework

我想知道在以下场景中是否可以使用Microsoft同步框架。

我有一个带有高分辨率图像的本地文件夹(带有子文件夹),另一个带有低分辨率图像的文件夹。我想同步两个文件夹。关键是低文件夹中的结构和文件必须与高文件夹中的结构和文件相同,但图像必须是低分辨率的。显然图像不一样,所以我想同步框架无法解决这个问题。

如果框架允许同步在同步时修改它们的文件,那将是完美的。这将是非常棒的,但我想这不仅仅是框架可以处理的,我正在考虑某种半自动同步。我的意思是,让框架检测更改,阅读这些更改并根据此更改自行执行创建/删除文件操作。

这可能吗?还有其他办法吗?

由于

2 个答案:

答案 0 :(得分:1)

Sync Framework中的文件同步提供程序具有一种预览模式,允许您在不进行实际同步的情况下检测更改...然后您可以循环执行更改并执行其他处理...

答案 1 :(得分:1)

我最接近处理类似问题的是:

  • 设置'假同步'到的文件夹;并在该文件夹中执行完全同步(不是在预览模式下,实际同步)。

  • 将SyncOrchestrator LocalProvider设置为伪文件夹的提供程序,并将提供程序设置为ExplicitDetectChanges。

  • 故意不要为假提供者调用DetectChanges()(我们真的不想知道假文件夹中发生了什么)。

  • 执行同步(SyncDirectionOrder.Download),并在OnApplyingChange中捕获已更改文件的名称。这会将所有文件发送到假文件夹并更新元数据

  • 删除伪文件夹中除元数据文件以外的所有文件。

下次同步时,假文件夹中的元数据文件应保留更改,因此仅显示已更改的文件。我知道我的情况与你的情况略有不同,但无论如何它希望它有所帮助。