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

> Referência para WdDeleteRemoteFiles, que executa a exclusão de melhor esforço de arquivos e diretórios em um dispositivo remoto, com sintaxe, parâmetros e comentários.

# WdDeleteRemoteFiles

Executa a exclusão de melhor esforço de arquivos e diretórios em um dispositivo remoto.

**Introduzida em:** [RIT 0.0.13-preview](/pt-BR/reference/remoting/release-versions#release-versions).

## Sintaxe

```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\***

O endereço ou nome do dispositivo remoto (UTF-8), por exemplo `"192.168.1.100"` ou `"MyDevKit"`.

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

O caminho no dispositivo remoto a ser excluído (UTF-8). Pode ser um caminho de pasta, caso em que o conteúdo dela é excluído, ou o caminho de um único arquivo, caso em que somente esse arquivo é excluído. Se `remoteFolderPath` for um caminho absoluto, o `commonRootAlias` em [WdDeleteOptions](/pt-BR/reference/remoting/structs/wddeleteoptions) será ignorado.

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

Opcional. Especifica o alias de raiz comum usado para a resolução de caminhos e se deve ser tentada a remoção da própria pasta raiz. Passe `nullptr` para usar o local de raiz comum padrão quando `remoteFolderPath` for um caminho relativo e para manter a pasta raiz, de modo que somente o conteúdo dela seja excluído. Quando `remoteFolderPath` é resolvido para um único arquivo, `deleteRootFolder` é ignorado.

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

Opcional. Especifica padrões de inclusão/exclusão e filtros de atributos que selecionam quais arquivos e diretórios são excluídos. Passe `nullptr` para incluir todos os itens. Essas opções se aplicam somente quando `remoteFolderPath` é resolvido para uma pasta; elas são ignoradas quando ele é resolvido para um único arquivo.

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

Atualmente ignorado. Passe `nullptr`; nenhum retorno de chamada de progresso ou de erro é invocado.

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

Opcional. Um identificador de cancelamento criado por [WdCreateCancellationHandle](/pt-BR/reference/remoting/functions/wdcreatecancellationhandle) que pode ser passado para [WdCancelRemoteDelete](/pt-BR/reference/remoting/functions/wdcancelremotedelete) de um thread separado para interromper a espera do cliente. Passe `nullptr` se o cancelamento não for necessário.

### Valor retornado

Tipo: **HRESULT**

Retorna `S_OK` quando o ponto de extremidade relata êxito ou o cliente observa o cancelamento; caso contrário, retorna um código de erro. `S_OK` não garante que todos os itens selecionados foram excluídos. Para obter a lista de códigos de erro específicos da API, incluindo causas raiz e orientações de solução de problemas, confira [Códigos de erro da XBOX PC Remote Iteration API](/pt-BR/reference/remoting/error-codes).

## Comentários

`WdDeleteRemoteFiles` é uma chamada síncrona e de bloqueio. Ela aguarda um resultado do ponto de extremidade, um erro ou um cancelamento observado via [WdCancelRemoteDelete](/pt-BR/reference/remoting/functions/wdcancelremotedelete). A exclusão é de melhor esforço: nenhum resultado por item é retornado, e as falhas de exclusão de arquivos são relatadas somente nos logs do ponto de extremidade.

Para habilitar o cancelamento, crie um [WdCancellationHandle](/pt-BR/reference/remoting/structs/wdcancellationhandle) usando [WdCreateCancellationHandle](/pt-BR/reference/remoting/functions/wdcreatecancellationhandle) antes de chamar `WdDeleteRemoteFiles` e, em seguida, passe-o para [WdCancelRemoteDelete](/pt-BR/reference/remoting/functions/wdcancelremotedelete) de um thread separado. Depois que `WdDeleteRemoteFiles` retornar, feche o identificador com [WdCloseCancellationHandle](/pt-BR/reference/remoting/functions/wdclosecancellationhandle).

O cancelamento interrompe a espera do cliente, não a exclusão já iniciada no ponto de extremidade. Quando o cancelamento é observado, a chamada retorna `S_OK` sem confirmar a conclusão no ponto de extremidade.

Por padrão, somente o conteúdo de `remoteFolderPath` é excluído e a própria pasta é mantida. Defina `deleteRootFolder` em [WdDeleteOptions](/pt-BR/reference/remoting/structs/wddeleteoptions) como `true` para também tentar remover a pasta depois que o conteúdo dela for excluído. A remoção é de melhor esforço e só é tentada se a pasta ficar vazia; uma exclusão filtrada que deixa itens para trás preserva a pasta.

Independentemente de `deleteRootFolder`, a operação também tenta remover subdiretórios vazios que passam pelos filtros de diretório, incluindo diretórios que já estavam vazios.

Se `remoteFolderPath` for um caminho absoluto, o `commonRootAlias` em [WdDeleteOptions](/pt-BR/reference/remoting/structs/wddeleteoptions) será ignorado. Se `remoteFolderPath` for um caminho relativo, o local de raiz comum padrão será usado, a menos que um `commonRootAlias` seja especificado.

> \[!WARNING]
> A exclusão pode seguir junções de diretório e links simbólicos de diretório abaixo de `remoteFolderPath` e excluir arquivos correspondentes fora desse diretório. A operação ainda pode retornar `S_OK`; nenhum resultado por item ou operação de desfazer é fornecido. Verifique se a raiz não é ela própria um diretório vinculado e use `excludeDirPattern` para excluir pelo nome subdiretórios vinculados conhecidos.

## Exemplos

### Exemplo 1: Limpar uma pasta de implantação

Tenta excluir o conteúdo de uma pasta de jogo em um dispositivo remoto usando as configurações padrão. A própria pasta é mantida. Um retorno bem-sucedido não comprova que a pasta está vazia.

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

### Exemplo 2: Exclusão filtrada

Tenta remover artefatos de build selecionados, preservando os dados de jogos salvos.

```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 |
| - | - |
| **Cabeçalho** | WdRemoteIteration.h |
| **Biblioteca** | wdremoteapi.lib |
| **SO com suporte** | Windows 11 e posterior |
| **Arquiteturas com suporte** | x64, ARM64 |

## Confira também

* [WdCancelRemoteDelete](/pt-BR/reference/remoting/functions/wdcancelremotedelete)
* [WdCancellationHandle](/pt-BR/reference/remoting/structs/wdcancellationhandle)
* [WdCreateCancellationHandle](/pt-BR/reference/remoting/functions/wdcreatecancellationhandle)
* [WdCloseCancellationHandle](/pt-BR/reference/remoting/functions/wdclosecancellationhandle)
* [WdDeleteOptions](/pt-BR/reference/remoting/structs/wddeleteoptions)
* [WdDeleteSearchOptions](/pt-BR/reference/remoting/structs/wddeletesearchoptions)
* [WdDeleteStatusCallbacks](/pt-BR/reference/remoting/structs/wddeletestatuscallbacks)
* [WdRemoteCopy](/pt-BR/reference/remoting/functions/wdremotecopy)
* [Códigos de erro da XBOX PC Remote Iteration API](/pt-BR/reference/remoting/error-codes)
* [XBOX PC Remote Iteration API](/pt-BR/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)
