如何使用Windows云同步引擎API支持删除



我正在基于CloudMirror示例为Windows 10实现一个云提供程序。问题是示例没有显示如何修改云中的文件。我的应用程序正在接收删除回调:CF_CALLBACK_TYPE_NOTIFY_delete、CF_CALLBACK_TYPE_NOTIFY_DELTE_COMPLETION。当我运行该应用程序并尝试在Windows资源管理器中删除文件时,我看到通知删除被调用了三次。然后通知删除完成一次。在某个时刻,我需要尝试删除云文件并报告任何失败。

  1. 为什么删除回调运行三次
  2. 我应该什么时候真正删除云中的文件
  3. 我还注意到CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COCOMPLETION回调有一个删除标志参数。我可以用它代替吗

我一直在看微软关于这个API的文档,但我还没有找到任何关于它应该如何工作的解释。

我猜CF_CALLBACK_TYPE_NOTIFY_DELTE被调用了不止一次,因为平台;认为";上一次调用未成功完成。在CF_CALLBACK_TYPE_NOTIFY_DELETE回调中,需要调用CF_OPERATION_PARAMETERS.ACKDELETE((,CompletionStatus设置为STATUS_SUCCESS。

通常,您将删除CF_CALLBACK_TYPE_NOTIFY_delete中的云文件,而不是CF_CALLBACK_TYPE_NOTIFY_DELTE_OCOMPLETION中的云。因为您需要通过CfExecute((调用将文件删除的结果(成功、失败或某些自定义消息(返回到系统。

此外,请注意,文件通常会被移到回收站中。因此,除了删除通话外,您还会接到一个移动通话。

最新更新