WdDeleteRemoteFiles
リモート デバイス上のファイルとディレクトリをベスト エフォートで削除します。 導入バージョン: RIT 0.0.13-preview。構文
パラメーター
_In_z_ remoteDeviceType: const char* リモート デバイスのアドレスまたは名前 (UTF-8)。たとえば
"192.168.1.100" や "MyDevKit" です。
_In_z_ remoteFolderPathType: const char* 削除するリモート デバイス上のパス (UTF-8)。フォルダー パスを指定した場合はその内容が削除され、単一のファイル パスを指定した場合はそのファイルのみが削除されます。
remoteFolderPath が絶対パスの場合、WdDeleteOptions の commonRootAlias は無視されます。
_In_opt_ deleteOptionsType: const WdDeleteOptions* 省略可能。パスの解決に使用する共通ルート エイリアスと、ルート フォルダー自体の削除を試みるかどうかを指定します。
remoteFolderPath が相対パスの場合に既定の共通ルートの場所を使用し、ルート フォルダーをそのまま残してその内容のみを削除するには、nullptr を渡します。remoteFolderPath が単一のファイルに解決される場合、deleteRootFolder は無視されます。
_In_opt_ searchOptionsType: const WdDeleteSearchOptions* 省略可能。削除するファイルとディレクトリを選択するための包含/除外パターンと属性フィルターを指定します。すべての項目を対象にするには
nullptr を渡します。これらのオプションは、remoteFolderPath がフォルダーに解決される場合にのみ適用され、単一のファイルに解決される場合は無視されます。
_In_opt_ statusCallbacksType: const WdDeleteStatusCallbacks* 現在は無視されます。
nullptr を渡してください。進行状況コールバックやエラー コールバックは呼び出されません。
_In_opt_ cancellationHandleType: WdCancellationHandle 省略可能。WdCreateCancellationHandle で作成したキャンセル ハンドル。別のスレッドから WdCancelRemoteDelete に渡して、クライアントの待機を停止できます。キャンセルが不要な場合は
nullptr を渡します。
戻り値
Type: HRESULT エンドポイントが成功を報告した場合、またはクライアントがキャンセルを検知した場合はS_OK を返します。それ以外の場合はエラー コードを返します。S_OK は、選択されたすべての項目が削除されたことを保証するものではありません。根本原因やトラブルシューティングのガイダンスを含む API 固有のエラー コードの一覧については、「XBOX PC Remote Iteration API のエラー コード」を参照してください。
解説
WdDeleteRemoteFiles は同期のブロッキング呼び出しです。エンドポイントの結果、エラー、または WdCancelRemoteDelete によるキャンセルの検知を待機します。削除はベスト エフォートで行われます。項目ごとの結果は返されず、ファイル削除の失敗はエンドポイントのログにのみ報告されます。
キャンセルを有効にするには、WdDeleteRemoteFiles を呼び出す前に WdCreateCancellationHandle を使用して WdCancellationHandle を作成し、別のスレッドからそれを WdCancelRemoteDelete に渡します。WdDeleteRemoteFiles から制御が戻った後、WdCloseCancellationHandle でハンドルを閉じます。
キャンセルによって停止されるのはクライアントの待機であり、エンドポイントで既に開始された削除ではありません。キャンセルが検知されると、この呼び出しはエンドポイントでの完了を確認せずに S_OK を返します。
既定では、remoteFolderPath の内容のみが削除され、フォルダー自体はそのまま残ります。内容の削除後にフォルダー自体の削除も試みるには、WdDeleteOptions の deleteRootFolder を true に設定します。フォルダーの削除はベスト エフォートで行われ、フォルダーが空になった場合にのみ試行されます。フィルター処理された削除によって項目が残った場合、フォルダーは保持されます。
deleteRootFolder の設定にかかわらず、この操作では、ディレクトリ フィルターを通過した空のサブディレクトリ (元から空だったディレクトリを含む) の削除も試みます。
remoteFolderPath が絶対パスの場合、WdDeleteOptions の commonRootAlias は無視されます。remoteFolderPath が相対パスの場合、commonRootAlias が指定されていない限り、既定の共通ルートの場所が使用されます。
[!WARNING] 削除処理はremoteFolderPathの下にあるディレクトリ ジャンクションやディレクトリ シンボリック リンクをたどり、そのディレクトリの外部にある一致するファイルを削除する可能性があります。その場合でも、操作はS_OKを返すことがあります。項目ごとの結果や元に戻す操作は提供されません。ルート自体がリンクされたディレクトリでないことを確認し、既知のリンクされたサブディレクトリを名前で除外するにはexcludeDirPatternを使用してください。
