报告文件同步进度

应用程序可以通过注册以接收同步期间出现的通知来跟踪同步进度。

托管代码:注册处理程序以便从 FileSyncProvider 对象接收事件(这些事件如 CopyingFile,定期出现以便在复制文件过程中显示进度;或 AppliedChange,在应用文件变更后出现)。

非托管代码:向 IFileSyncProvider::Initialize 方法传递 IFileSyncProviderCallback 对象。引发事件时将调用 IFileSyncProviderCallback 方法(这些事件如 IFileSyncProviderCallback::OnFileCopyProgress,定期出现以便在复制文件过程中显示进度;或 IFileSyncProviderCallback::OnChangeApplied,在应用文件变更后出现)。

预览模式

开始同步之前,应用程序可以通过将 PreviewMode 属性的值设置为 true(对于托管代码)或通过将 TRUE 传递给 IFileSyncProvider::SetPreviewMode 方法(对于非托管代码),将提供程序置于预览模式。在预览模式中,提供程序将如同在通常的同步会话中一样检测变更并引发事件。不过,提供程序不会将任何变更真正应用到目标副本,也不发送 AppliedChange 事件(对于托管代码)或 IFileSyncProviderCallback::OnChangeApplied 事件(对于非托管代码)。

显示增量进度

若要在同步会话过程中显示增量进度,请使用以下过程。

托管代码

  1. 注册以处理 ApplyingChange 事件。

  2. 通过将 PreviewMode 属性的值设置为 true,在提供程序中启用预览模式。

  3. 运行同步并且计算引发 ApplyingChange 的总次数。

  4. 注册以处理 AppliedChange 事件。

  5. 通过将 PreviewMode 属性的值设置为 false,在提供程序中禁用预览模式。

  6. 运行同步。引发 AppliedChange 后,可以按照在预览模式中运行同步时计算的变更总次数来递增同步进度。

非托管代码

  1. 注册以接收 IFileSyncProviderCallback::OnApplyingChange 回调。

  2. 通过向 IFileSyncProvider::SetPreviewMode 方法传递 TRUE,在提供程序中启用预览模式。

  3. 运行同步并且计算调用 OnApplyingChange 的总次数。

  4. 注册以接收 IFileSyncProviderCallback::OnChangeApplied 回调。

  5. 通过向 IFileSyncProvider::SetPreviewMode 方法传递 FALSE,在提供程序中禁用预览模式。

  6. 运行同步。调用 OnChangeApplied 后,可以按照在预览模式中运行同步时计算的变更总次数来递增同步进度。

请参阅

参考

IFileSyncProviderCallback 接口

概念

同步文件