重命名文件夹并覆盖删除云文件中的源文件夹 API

Rename folder with overwrite deletes the source folder in Cloud Files API

我正在使用 Cloud Files 创建虚拟文件系统 API。我正在尝试对文件夹执行 rename/move 和删除操作。具有覆盖场景的重命名文件夹(当目标文件夹存在时)行为令人困惑。在 Windows Explored 中,我试图将 Z:\Folder1 重命名为 Z:\Folder2,而 Z:\Folder2 已经存在。在执行重命名操作之前,正在通过调用 CF_CALLBACK_TYPE_NOTIFY_DELETE 回调删除源文件夹。

这是我使用 Cloud Filter API 获得的回调序列:

  1. CF_CALLBACK_TYPE_NOTIFY_DELETE 在源文件夹上调用。
  2. 正在将源文件夹中的每个文件移动到目标文件夹。
  3. CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION 在源文件夹上调用。

因此,无法在 CF_CALLBACK_TYPE_NOTIFY_DELETE 回调中删除存储中的文件夹,因为这会在移动操作之前删除所有文件。也没有办法区分 CF_CALLBACK_TYPE_NOTIFY_DELETE 中的删除和移动操作(所以我可以忽略它来进行移动操作)。

如何在 Cloud Files API 中正确实施删除和 rename/move 回调?

它特定于 Windows 文件管理器。我尝试使用带有“-Force”选项的 PowerShell“Move-Item”进行“移动”操作,我得到了下一个回调序列(没有删除回调):

  1. CF_CALLBACK_TYPE_NOTIFY_RENAME
  2. CF_CALLBACK_TYPE_NOTIFY_RENAME_完成