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.Sintaxe
Parâmetros
_In_z_ remoteDeviceTipo: const char* O endereço ou nome do dispositivo remoto (UTF-8), por exemplo
"192.168.1.100" ou "MyDevKit".
_In_z_ remoteFolderPathTipo: 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 será ignorado.
_In_opt_ deleteOptionsTipo: const 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_ searchOptionsTipo: const 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_ statusCallbacksTipo: const WdDeleteStatusCallbacks* Atualmente ignorado. Passe
nullptr; nenhum retorno de chamada de progresso ou de erro é invocado.
_In_opt_ cancellationHandleTipo: WdCancellationHandle Opcional. Um identificador de cancelamento criado por WdCreateCancellationHandle que pode ser passado para 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 RetornaS_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.
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. 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 usando WdCreateCancellationHandle antes de chamar WdDeleteRemoteFiles e, em seguida, passe-o para WdCancelRemoteDelete de um thread separado. Depois que WdDeleteRemoteFiles retornar, feche o identificador com 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 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 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 deremoteFolderPathe excluir arquivos correspondentes fora desse diretório. A operação ainda pode retornarS_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 useexcludeDirPatternpara excluir pelo nome subdiretórios vinculados conhecidos.
