【问题标题】:Delete called twice in Cloud Files API在 Cloud Files API 中调用了两次删除
【发布时间】:2021-08-16 12:52:54
【问题描述】:

我正在尝试使用 Cloud Files API 实现虚拟驱动器。我无法使删除操作起作用。由于某种原因,CF_CALLBACK_TYPE_NOTIFY_DELETE 回调被调用了两次。

我使用两种不同的方法在 C++ 和 C# 中构建了两个示例,在这两种情况下我得到了相同的结果:

  1. CF_CALLBACK_TYPE_NOTIFY_DELETE 被调用。
  2. CF_CALLBACK_TYPE_NOTIFY_DELETE 再次被调用。
  3. CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION 被调用。

这种行为有点令人困惑。谁能解释为什么会发生这种情况以及在第二次通话中我应该做什么?我可以以某种方式区分它们并忽略其中一个调用吗?

【问题讨论】:

  • “我能以某种方式区分它们吗” - 您可以存储待删除的注册表。在CF_CALLBACK_TYPE_NOTIFY_DELETE 上检查注册表以查看是否已经存在条目。如果没有,这是第一次调用,所以添加它。如果有,这是第二次(或后续)调用。在CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION 上从注册表中删除该条目。

标签: winapi filesystems virtualfilesystem


【解决方案1】:

我在 Windows 文件管理器中重现了这个问题,但是当我在 Powershell 中进行“删除”操作时没有问题。所以这可能是 Windows 文件管理器的错误或一些限制。

【讨论】:

    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多