> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WdDeleteRemoteFiles

> Référence de WdDeleteRemoteFiles, qui effectue au mieux la suppression de fichiers et de répertoires sur un appareil distant, avec sa syntaxe, ses paramètres et des remarques.

# WdDeleteRemoteFiles

Effectue au mieux la suppression de fichiers et de répertoires sur un appareil distant.

**Introduit dans :** [RIT 0.0.13-preview](/fr-CA/reference/remoting/release-versions#release-versions).

## Syntaxe

```cpp theme={null}
HRESULT WdDeleteRemoteFiles(  
         _In_z_ const char* remoteDevice,  
         _In_z_ const char* remoteFolderPath,  
         _In_opt_ const WdDeleteOptions* deleteOptions,  
         _In_opt_ const WdDeleteSearchOptions* searchOptions,  
         _In_opt_ const WdDeleteStatusCallbacks* statusCallbacks,  
         _In_opt_ WdCancellationHandle cancellationHandle  
);  
```

### Paramètres

`_In_z_ remoteDevice`\
Type : **const char\***

L'adresse ou le nom de l'appareil distant (UTF-8), par exemple `"192.168.1.100"` ou `"MyDevKit"`.

`_In_z_ remoteFolderPath`\
Type : **const char\***

Le chemin sur l'appareil distant à supprimer (UTF-8). Il peut s'agir d'un chemin de dossier, auquel cas son contenu est supprimé, ou du chemin d'un seul fichier, auquel cas seul ce fichier est supprimé. Si `remoteFolderPath` est un chemin absolu, le `commonRootAlias` de [WdDeleteOptions](/fr-CA/reference/remoting/structs/wddeleteoptions) est ignoré.

`_In_opt_ deleteOptions`\
Type : **const [WdDeleteOptions](/fr-CA/reference/remoting/structs/wddeleteoptions)\***

Facultatif. Spécifie l'alias de racine commune utilisé pour la résolution des chemins et indique si la suppression du dossier racine lui-même doit être tentée. Passez `nullptr` pour utiliser l'emplacement de la racine commune par défaut lorsque `remoteFolderPath` est un chemin relatif, et pour conserver le dossier racine afin que seul son contenu soit supprimé. Lorsque `remoteFolderPath` se résout en un seul fichier, `deleteRootFolder` est ignoré.

`_In_opt_ searchOptions`\
Type : **const [WdDeleteSearchOptions](/fr-CA/reference/remoting/structs/wddeletesearchoptions)\***

Facultatif. Spécifie des modèles d'inclusion et d'exclusion ainsi que des filtres d'attributs qui sélectionnent les fichiers et les répertoires à supprimer. Passez `nullptr` pour inclure tous les éléments. Ces options s'appliquent uniquement lorsque `remoteFolderPath` se résout en un dossier; elles sont ignorées lorsqu'il se résout en un seul fichier.

`_In_opt_ statusCallbacks`\
Type : **const [WdDeleteStatusCallbacks](/fr-CA/reference/remoting/structs/wddeletestatuscallbacks)\***

Actuellement ignoré. Passez `nullptr`; aucun rappel de progression ou d'erreur n'est invoqué.

`_In_opt_ cancellationHandle`\
Type : **[WdCancellationHandle](/fr-CA/reference/remoting/structs/wdcancellationhandle)**

Facultatif. Un handle d'annulation créé par [WdCreateCancellationHandle](/fr-CA/reference/remoting/functions/wdcreatecancellationhandle) qui peut être passé à [WdCancelRemoteDelete](/fr-CA/reference/remoting/functions/wdcancelremotedelete) à partir d'un thread distinct pour arrêter l'attente du client. Passez `nullptr` si l'annulation n'est pas nécessaire.

### Valeur de retour

Type : **HRESULT**

Retourne `S_OK` lorsque le point de terminaison signale une réussite ou que le client observe l'annulation; sinon, retourne un code d'erreur. `S_OK` ne garantit pas que chaque élément sélectionné a été supprimé. Pour obtenir la liste des codes d'erreur propres à l'API, y compris les causes premières et des conseils de dépannage, consultez [Codes d'erreur de l'API XBOX PC Remote Iteration](/fr-CA/reference/remoting/error-codes).

## Remarques

`WdDeleteRemoteFiles` est un appel synchrone et bloquant. Il attend un résultat du point de terminaison, une erreur ou une annulation observée au moyen de [WdCancelRemoteDelete](/fr-CA/reference/remoting/functions/wdcancelremotedelete). La suppression est effectuée au mieux : aucun résultat par élément n'est retourné, et les échecs de suppression de fichiers sont signalés uniquement dans les journaux du point de terminaison.

Pour activer l'annulation, créez un [WdCancellationHandle](/fr-CA/reference/remoting/structs/wdcancellationhandle) à l'aide de [WdCreateCancellationHandle](/fr-CA/reference/remoting/functions/wdcreatecancellationhandle) avant d'appeler `WdDeleteRemoteFiles`, puis passez-le à [WdCancelRemoteDelete](/fr-CA/reference/remoting/functions/wdcancelremotedelete) à partir d'un thread distinct. Après le retour de `WdDeleteRemoteFiles`, fermez le handle avec [WdCloseCancellationHandle](/fr-CA/reference/remoting/functions/wdclosecancellationhandle).

L'annulation arrête l'attente du client, et non la suppression déjà commencée sur le point de terminaison. Lorsque l'annulation est observée, l'appel retourne `S_OK` sans confirmer que le point de terminaison a terminé.

Par défaut, seul le contenu de `remoteFolderPath` est supprimé et le dossier lui-même est conservé. Réglez `deleteRootFolder` de [WdDeleteOptions](/fr-CA/reference/remoting/structs/wddeleteoptions) à `true` pour tenter également de supprimer le dossier une fois son contenu supprimé. Cette suppression est effectuée au mieux et n'est tentée que si le dossier est vide; une suppression filtrée qui laisse des éléments conserve le dossier.

Quelle que soit la valeur de `deleteRootFolder`, l'opération tente également de supprimer les sous-répertoires vides qui satisfont aux filtres de répertoires, y compris les répertoires qui étaient déjà vides.

Si `remoteFolderPath` est un chemin absolu, le `commonRootAlias` de [WdDeleteOptions](/fr-CA/reference/remoting/structs/wddeleteoptions) est ignoré. Si `remoteFolderPath` est un chemin relatif, l'emplacement de la racine commune par défaut est utilisé, sauf si un `commonRootAlias` est spécifié.

> \[!WARNING]
> La suppression peut suivre les jonctions de répertoires et les liens symboliques de répertoires situés sous `remoteFolderPath` et supprimer des fichiers correspondants en dehors de ce répertoire. L'opération peut tout de même retourner `S_OK`; aucun résultat par élément ni aucune opération d'annulation des modifications ne sont fournis. Assurez-vous que la racine n'est pas elle-même un répertoire lié, et utilisez `excludeDirPattern` pour exclure par leur nom les sous-répertoires liés connus.

## Exemples

### Exemple 1 : Vider un dossier de déploiement

Tente de supprimer le contenu d'un dossier de jeu sur un appareil distant à l'aide des paramètres par défaut. Le dossier lui-même est conservé. Un retour réussi ne prouve pas que le dossier est vide.

```cpp theme={null}
// BasicDelete.cpp
// Clears the contents of a deployment folder on a remote device.
// Build: Link against wdremoteapi.lib

#include <windows.h>
#include <stdio.h>
#include "WdRemoteIteration.h"

int main()
{
    // TODO: Replace with your remote device IP address or hostname
    const char* remoteDevice = "192.168.1.100";

    // TODO: Replace with the folder name on the remote device.
    // Relative paths resolve against the default common root.
    const char* remoteFolderPath = "MyGame";

    HRESULT hr = WdDeleteRemoteFiles(
        remoteDevice,
        remoteFolderPath,
        nullptr,    // deleteOptions — default common root, folder itself is kept
        nullptr,    // searchOptions - selects all items
        nullptr,    // statusCallbacks - currently ignored
        nullptr);   // cancellationHandle — no cancellation support

    if (SUCCEEDED(hr))
    {
        printf("Delete request completed. Some items may remain.\n");
    }
    else
    {
        printf("Delete failed: HRESULT 0x%08X\n", hr);
    }

    return hr;
}
```

### Exemple 2 : Suppression filtrée

Tente de supprimer certains artefacts de build tout en préservant les données de jeu sauvegardées.

```cpp theme={null}
// FilteredDelete.cpp
// Deletes selected build artifacts.
// Build: Link against wdremoteapi.lib

#include <windows.h>
#include <stdio.h>
#include "WdRemoteIteration.h"

int main()
{
    const char* remoteDevice     = "192.168.1.100";
    const char* remoteFolderPath = "MyGame";

    // Remove executables and symbols, but keep save data
    WdDeleteSearchOptions searchOptions = {};
    searchOptions.includeFilePattern    = "*.exe;*.dll;*.pdb";
    searchOptions.excludeFilePattern    = "*.sav";
    searchOptions.excludeDirPattern     = "SaveData";
    searchOptions.includeFileAttributes = 0;  // No attribute-based include filter
    searchOptions.excludeFileAttributes = 0;  // No attribute-based exclude filter
    searchOptions.includeDirAttributes  = 0;  // No attribute-based include filter
    searchOptions.excludeDirAttributes  = 0;  // No attribute-based exclude filter

    HRESULT hr = WdDeleteRemoteFiles(
        remoteDevice,
        remoteFolderPath,
        nullptr,          // deleteOptions — defaults
        &searchOptions,
        nullptr,          // statusCallbacks - currently ignored
        nullptr);         // cancellationHandle — no cancellation support

    if (SUCCEEDED(hr))
    {
        printf("Delete request completed. Some items may remain.\n");
    }
    else
    {
        printf("Delete failed: HRESULT 0x%08X\n", hr);
    }

    return hr;
}
```

## Configuration requise

| Exigence | Valeur |
| - | - |
| **En-tête** | WdRemoteIteration.h |
| **Bibliothèque** | wdremoteapi.lib |
| **SE pris en charge** | Windows 11 et versions ultérieures |
| **Architectures prises en charge** | x64, ARM64 |

## Voir aussi

* [WdCancelRemoteDelete](/fr-CA/reference/remoting/functions/wdcancelremotedelete)
* [WdCancellationHandle](/fr-CA/reference/remoting/structs/wdcancellationhandle)
* [WdCreateCancellationHandle](/fr-CA/reference/remoting/functions/wdcreatecancellationhandle)
* [WdCloseCancellationHandle](/fr-CA/reference/remoting/functions/wdclosecancellationhandle)
* [WdDeleteOptions](/fr-CA/reference/remoting/structs/wddeleteoptions)
* [WdDeleteSearchOptions](/fr-CA/reference/remoting/structs/wddeletesearchoptions)
* [WdDeleteStatusCallbacks](/fr-CA/reference/remoting/structs/wddeletestatuscallbacks)
* [WdRemoteCopy](/fr-CA/reference/remoting/functions/wdremotecopy)
* [Codes d'erreur de l'API XBOX PC Remote Iteration](/fr-CA/reference/remoting/error-codes)
* [API d'itération à distance XBOX PC](/fr-CA/reference/remoting/remoteiteration_members)


## Related topics

- [WdDeleteRemoteFiles](/reference/remoting/functions/wddeleteremotefiles.md)
- [WdCancelRemoteDelete](/reference/remoting/functions/wdcancelremotedelete.md)
- [WdDeleteFileProgressInfo](/reference/remoting/structs/wddeletefileprogressinfo.md)
- [WdDeleteOptions](/reference/remoting/structs/wddeleteoptions.md)
- [WdDeleteOperationSummary](/reference/remoting/structs/wddeleteoperationsummary.md)
