Cloud Files API を使用して仮想ファイル システムを作成しています。フォルダーの名前変更/移動および削除操作を実装しようとしています。上書きシナリオ (ターゲット フォルダーが存在する場合) を使用したフォルダーの名前変更の動作は混乱を招きます。Windows Explored で、Z:\Folder2 が既に存在しているときに、Z:\Folder1 を Z:\Folder2 に名前変更しようとしています。名前の変更操作が実行される前に、ソース フォルダーは CF_CALLBACK_TYPE_NOTIFY_DELETE コールバックを呼び出して削除されています。
Cloud Filter API で取得するコールバックのシーケンスは次のとおりです。
- CF_CALLBACK_TYPE_NOTIFY_DELETE がソース フォルダーで呼び出されます。
- ソース フォルダの各ファイルがターゲット フォルダに移動されています。
- CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION がソース フォルダーで呼び出されます。
その結果、移動操作の前にすべてのファイルが削除されるため、CF_CALLBACK_TYPE_NOTIFY_DELETE コールバック内のストレージ内のフォルダーを削除する方法がありません。また、CF_CALLBACK_TYPE_NOTIFY_DELETE 内で削除操作と移動操作を区別する方法はありません (したがって、移動操作では無視できます)。
Cloud Files API で削除および名前変更/移動のコールバックを適切に実装するにはどうすればよいですか?