2

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

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

如果框架允许在同步时同步修改它们的文件,那将是完美的。这太棒了,但我想这超出了框架可以处理的范围,所以我在考虑某种半自动同步。我的意思是,让框架检测更改,读取这些更改并根据这些更改执行我自己的创建/删除文件操作。

这可能吗?有没有其他方法可以做到这一点?

谢谢

4

2 回答 2

1

Sync Framework 中的文件同步提供程序具有预览模式,可让您检测更改而无需进行实际同步...然后您可以循环通过更改并进行其他处理...

于 2012-05-29T02:43:30.130 回答
1

我最接近解决类似问题的方法如下:

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

  • 将 SyncOrchestrator LocalProvider 设置为假文件夹的提供者,并将提供者设置为 ExplicitDetectChanges。

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

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

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

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

于 2012-07-31T08:34:25.727 回答