> ## 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

> Referencia de WdDeleteRemoteFiles, que realiza la eliminación de archivos y directorios en un dispositivo remoto según el mejor esfuerzo, con sintaxis, parámetros y comentarios.

# WdDeleteRemoteFiles

Realiza la eliminación de archivos y directorios en un dispositivo remoto según el mejor esfuerzo.

**Introducido en:** [RIT 0.0.13-preview](/es/reference/remoting/release-versions#release-versions).

## Sintaxis

```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  
);  
```

### Parámetros

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

Dirección o nombre del dispositivo remoto (UTF-8), por ejemplo `"192.168.1.100"` o `"MyDevKit"`.

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

Ruta de acceso del dispositivo remoto que se va a eliminar (UTF-8). Puede ser una ruta de acceso de carpeta, en cuyo caso se elimina su contenido, o una ruta de acceso de un solo archivo, en cuyo caso solo se elimina ese archivo. Si `remoteFolderPath` es una ruta de acceso absoluta, se omite el valor `commonRootAlias` de [WdDeleteOptions](/es/reference/remoting/structs/wddeleteoptions).

`_In_opt_ deleteOptions`\
Tipo: **const [WdDeleteOptions](/es/reference/remoting/structs/wddeleteoptions)\***

Opcional. Especifica el alias de raíz común que se usa para resolver la ruta de acceso y si se intenta quitar la propia carpeta raíz. Pase `nullptr` para usar la ubicación raíz común predeterminada cuando `remoteFolderPath` sea una ruta de acceso relativa y para dejar la carpeta raíz en su lugar, de modo que solo se elimine su contenido. Cuando `remoteFolderPath` se resuelve en un solo archivo, se omite `deleteRootFolder`.

`_In_opt_ searchOptions`\
Tipo: **const [WdDeleteSearchOptions](/es/reference/remoting/structs/wddeletesearchoptions)\***

Opcional. Especifica patrones de inclusión y exclusión y filtros de atributos que seleccionan los archivos y directorios que se eliminan. Pase `nullptr` para incluir todos los elementos. Estas opciones solo se aplican cuando `remoteFolderPath` se resuelve en una carpeta; se omiten cuando se resuelve en un solo archivo.

`_In_opt_ statusCallbacks`\
Tipo: **const [WdDeleteStatusCallbacks](/es/reference/remoting/structs/wddeletestatuscallbacks)\***

Actualmente se omite. Pase `nullptr`; no se invoca ninguna devolución de llamada de progreso ni de error.

`_In_opt_ cancellationHandle`\
Tipo: **[WdCancellationHandle](/es/reference/remoting/structs/wdcancellationhandle)**

Opcional. Identificador de cancelación creado por [WdCreateCancellationHandle](/es/reference/remoting/functions/wdcreatecancellationhandle) que se puede pasar a [WdCancelRemoteDelete](/es/reference/remoting/functions/wdcancelremotedelete) desde un subproceso independiente para detener la espera del cliente. Pase `nullptr` si no se necesita la cancelación.

### Valor devuelto

Tipo: **HRESULT**

Devuelve `S_OK` cuando el punto de conexión notifica que se ha realizado correctamente o el cliente detecta la cancelación; de lo contrario, devuelve un código de error. `S_OK` no garantiza que se haya eliminado cada elemento seleccionado. Para obtener la lista de códigos de error específicos de la API, incluidas las causas principales y las instrucciones de solución de problemas, consulte [Códigos de error de la API XBOX PC Remote Iteration](/es/reference/remoting/error-codes).

## Comentarios

`WdDeleteRemoteFiles` es una llamada sincrónica y de bloqueo. Espera un resultado del punto de conexión, un error o la cancelación detectada mediante [WdCancelRemoteDelete](/es/reference/remoting/functions/wdcancelremotedelete). La eliminación se realiza según el mejor esfuerzo: no se devuelven resultados por elemento y los errores de eliminación de archivos solo se notifican en los registros del punto de conexión.

Para habilitar la cancelación, cree un [WdCancellationHandle](/es/reference/remoting/structs/wdcancellationhandle) mediante [WdCreateCancellationHandle](/es/reference/remoting/functions/wdcreatecancellationhandle) antes de llamar a `WdDeleteRemoteFiles` y, a continuación, páselo a [WdCancelRemoteDelete](/es/reference/remoting/functions/wdcancelremotedelete) desde un subproceso independiente. Cuando `WdDeleteRemoteFiles` devuelva un valor, cierre el identificador con [WdCloseCancellationHandle](/es/reference/remoting/functions/wdclosecancellationhandle).

La cancelación detiene la espera del cliente, no la eliminación ya iniciada en el punto de conexión. Cuando se detecta la cancelación, la llamada devuelve `S_OK` sin confirmar la finalización en el punto de conexión.

De forma predeterminada, solo se elimina el contenido de `remoteFolderPath` y la propia carpeta se deja en su lugar. Establezca `deleteRootFolder` en [WdDeleteOptions](/es/reference/remoting/structs/wddeleteoptions) en `true` para intentar también quitar la carpeta una vez eliminado su contenido. La eliminación se realiza según el mejor esfuerzo y solo se intenta si la carpeta queda vacía; una eliminación filtrada que deja elementos conserva la carpeta.

Independientemente de `deleteRootFolder`, la operación también intenta quitar los subdirectorios vacíos que superan los filtros de directorio, incluidos los directorios que ya estaban vacíos.

Si `remoteFolderPath` es una ruta de acceso absoluta, se omite el valor `commonRootAlias` de [WdDeleteOptions](/es/reference/remoting/structs/wddeleteoptions). Si `remoteFolderPath` es una ruta de acceso relativa, se usa la ubicación raíz común predeterminada, a menos que se especifique un `commonRootAlias`.

> \[!WARNING]
> La eliminación puede seguir uniones de directorio y vínculos simbólicos de directorio situados bajo `remoteFolderPath` y eliminar archivos coincidentes fuera de ese directorio. La operación puede devolver `S_OK` igualmente; no se proporcionan resultados por elemento ni una operación para deshacer. Asegúrese de que la raíz no sea un directorio vinculado y use `excludeDirPattern` para excluir por nombre los subdirectorios vinculados conocidos.

## Ejemplos

### Ejemplo 1: Borrar una carpeta de implementación

Intenta eliminar el contenido de una carpeta de juego en un dispositivo remoto con la configuración predeterminada. La propia carpeta se deja en su lugar. Una devolución correcta no demuestra que la carpeta esté vacía.

```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;
}
```

### Ejemplo 2: Eliminación filtrada

Intenta quitar los artefactos de compilación seleccionados y conservar los datos de partidas guardadas.

```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;
}
```

## Requisitos

| Requisito | Valor |
| - | - |
| **Encabezado** | WdRemoteIteration.h |
| **Biblioteca** | wdremoteapi.lib |
| **Sistemas operativos compatibles** | Windows 11 y versiones posteriores |
| **Arquitecturas compatibles** | x64, ARM64 |

## Consulte también

* [WdCancelRemoteDelete](/es/reference/remoting/functions/wdcancelremotedelete)
* [WdCancellationHandle](/es/reference/remoting/structs/wdcancellationhandle)
* [WdCreateCancellationHandle](/es/reference/remoting/functions/wdcreatecancellationhandle)
* [WdCloseCancellationHandle](/es/reference/remoting/functions/wdclosecancellationhandle)
* [WdDeleteOptions](/es/reference/remoting/structs/wddeleteoptions)
* [WdDeleteSearchOptions](/es/reference/remoting/structs/wddeletesearchoptions)
* [WdDeleteStatusCallbacks](/es/reference/remoting/structs/wddeletestatuscallbacks)
* [WdRemoteCopy](/es/reference/remoting/functions/wdremotecopy)
* [Códigos de error de la API XBOX PC Remote Iteration](/es/reference/remoting/error-codes)
* [API XBOX PC Remote Iteration](/es/reference/remoting/remoteiteration_members)


## Related topics

- [WdDeleteFileProgressInfo](/es/reference/remoting/structs/wddeletefileprogressinfo.md)
- [WdCancelRemoteDelete](/es/reference/remoting/functions/wdcancelremotedelete.md)
- [WdDeleteOptions](/es/reference/remoting/structs/wddeleteoptions.md)
- [WdDeleteOperationSummary](/es/reference/remoting/structs/wddeleteoperationsummary.md)
- [WdDeleteProgressCallback](/es/reference/remoting/callbacks/wddeleteprogresscallback.md)
