Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Exclui um diretório vazio existente. Essa função falhará se qualquer parte do lpPathName for redirecionada por meio de um ponto de nova análise ou um link simbólico.
Para executar essa operação como uma operação transacionada, use a função RemoveDirectoryTransacted .
Sintaxe
BOOL RemoveDirectory2W(
LPCWSTR lpPathName,
DIRECTORY_FLAGS DirectoryFlags
);
Parâmetros
lpPathName
O caminho do diretório a ser removido. Esse caminho deve especificar um diretório vazio e o processo de chamada deve ter acesso de exclusão ao diretório.
Por padrão, o nome é limitado a MAX_PATH caracteres. Para estender esse limite para 32.767 caracteres de largura, acrescente "\\?\" ao caminho. Para obter mais informações, veja Naming Files, Paths, and Namespaces (Nomenclatura de Ficheiros, Caminhos e Espaços de Nomes).
Dica
Você pode aceitar para remover a limitação de MAX_PATH sem acrescentar "\\?\". Consulte a seção "Limitação máxima do comprimento do caminho" de Arquivos de Nomenclatura, Caminhos e Namespaces para obter detalhes.
DirectoryFlags
Sinalizadores que especificam como o diretório deve ser excluído. Esse parâmetro pode ser uma combinação dos seguintes valores:
Valor | Significado |
---|---|
DIRECTORY_FLAGS_DISALLOW_PATH_REDIRECTS0x00000001 |
Impedir que lpPathName seja redirecionado por pontos de nova análise ou links simbólicos. |
Valor de retorno
Se a função for bem-sucedida, o valor retornado não será zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Observações
A função RemoveDirectory2 marca um diretório para exclusão no fechamento. Portanto, o diretório não será removido até que o último identificador do diretório seja fechado.
Para excluir recursivamente os arquivos em um diretório, use a função SHFileOperation .
RemoveDirectory2 pode ser usado para remover uma junção de diretório. Como o diretório de destino e seu conteúdo permanecerão acessíveis por meio de seu caminho canônico, o diretório de destino em si não é afetado pela remoção de uma junção direcionada a ele. Por esse motivo, quando lpPathName se refere a uma junção de diretório, RemoveDirectory2 removerá o link especificado, independentemente de o diretório de destino estiver vazio ou não. Para obter mais informações sobre junções, consulte Links Rígidos e Junções.
O uso da exclusão POSIX faz com que o diretório seja excluído enquanto os identificadores permanecem abertos. Chamadas subsequentes para CreateDirectory ou CreateDirectory2 para abrir o diretório falham com ERROR_FILE_NOT_FOUND.
Essa função é compatível com as seguintes tecnologias:
Tecnologia | Suportado |
---|---|
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 | Yes |
TFO (Failover Transparente) do SMB 3.0 | Yes |
SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) | Yes |
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) | Yes |
ReFS (Sistema de Arquivos Resiliente) | Yes |
Observação
O fileapi.h
cabeçalho define RemoveDirectory2 como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 11 24H2 [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2025 [aplicativos da área de trabalho | Aplicativos UWP] |
cabeçalho | fileapi.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
de DLL | Kernel32.dll |
Consulte também
Criando e excluindo diretórios