Função CreateDirectoryA (fileapi.h)
Cria um novo diretório. Se o sistema de arquivos subjacente der suporte à segurança em arquivos e diretórios, a função aplicará um descritor de segurança especificado ao novo diretório.
Para especificar um diretório de modelo, use a função CreateDirectoryEx .
Para executar essa operação como uma operação transacionada, use a função CreateDirectoryTransacted .
Sintaxe
BOOL CreateDirectoryA(
[in] LPCSTR lpPathName,
[in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
Parâmetros
[in] lpPathName
O caminho do diretório a ser criado.
Por padrão, o nome é limitado a caracteres MAX_PATH. Para estender esse limite para 32.767 caracteres largos, preencha "\\?\" para o caminho. Para obter mais informações, confira Nomear arquivos, caminhos e namespaces.
Dica
A partir do Windows 10, versão 1607, você pode optar por remover a limitação de MAX_PATH sem acrescentar "\\?\". Consulte a seção "Limitação máxima de comprimento do caminho" de Arquivos de Nomenclatura, Caminhos e Namespaces para obter detalhes.
[in, optional] lpSecurityAttributes
Um ponteiro para uma estrutura SECURITY_ATTRIBUTES . O membro lpSecurityDescriptor da estrutura especifica um descritor de segurança para o novo diretório. Se lpSecurityAttributes for NULL, o diretório receberá um descritor de segurança padrão. As ACLs no descritor de segurança padrão para um diretório são herdadas de seu diretório pai.
O sistema de arquivos de destino deve dar suporte à segurança em arquivos e diretórios para que esse parâmetro tenha um efeito. (Isso é indicado quando GetVolumeInformation retorna FS_PERSISTENT_ACLS.)
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError. Os possíveis erros incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
O diretório especificado já existe. |
|
Um ou mais diretórios intermediários não existem; essa função criará apenas o diretório final no caminho. |
Comentários
Alguns sistemas de arquivos, como o sistema de arquivos NTFS, dão suporte à compactação ou criptografia para arquivos e diretórios individuais. Em volumes formatados para esse sistema de arquivos, um novo diretório herda os atributos de compactação e criptografia de seu diretório pai.
Um aplicativo pode obter um identificador para um diretório chamando CreateFile com o sinalizador FILE_FLAG_BACKUP_SEMANTICS definido. Para obter um exemplo de código, consulte CreateFile.
Para dar suporte a funções de herança que consultam o descritor de segurança desse objeto, pode determinar heuristicamente e relatar que a herança está em vigor. Consulte Propagação automática de ACEs herdáveis para obter mais informações.
Em Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.
Tecnologia | Com suporte |
---|---|
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 | Sim |
TFO (Failover Transparente) do SMB 3.0 | Sim |
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) | Sim |
Sistema de arquivos de volume compartilhado de cluster (CsvFS) | Sim |
ReFS (Sistema de Arquivos Resiliente) | Sim |
Exemplos
Para obter um exemplo, consulte Recuperando e alterando atributos de arquivo.
Observação
O cabeçalho fileapi.h define CreateDirectory como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | fileapi.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |
Confira também
Criando e excluindo diretórios