Função CreateDirectory (winbase.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 CreateDirectory(
  [in]           LPCTSTR               lpPathName,
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

Parâmetros

[in] lpPathName

O caminho do diretório a ser criado.

Para a versão ANSI dessa função, há um limite de tamanho de cadeia de caracteres padrão para caminhos de 248 caracteres (MAX_PATH - espaço suficiente para um nome de arquivo 8.3). Para estender esse limite para 32.767 caracteres largos, chame a versão Unicode da função e acrescente "\?" ao caminho. Para obter mais informações, consulte Nomenclatura de um arquivo

Ponta Começando com Windows 10, versão 1607, para a versão unicode dessa função (CreateDirectoryW), você pode aceitar remover a limitação de 248 caracteres sem acrescentar "\\?\". O limite de 255 caracteres por segmento de caminho ainda se aplica. Consulte a seção "Limitação máxima do 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 obterá 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
ERROR_ALREADY_EXISTS
O diretório especificado já existe.
ERROR_PATH_NOT_FOUND
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. Confira Propagação automática de ACEs herdáveis para obter mais informações.

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 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 Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

Exemplos

Para obter um exemplo, consulte Recuperando e alterando atributos de arquivo.

Requisitos

Requisito Valor
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 winbase.h (incluir Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

CreateDirectoryEx

CreateDirectoryTransacted

CreateFile

Criar e excluir diretórios

Funções do gerenciamento de diretórios

RemoveDirectory

SECURITY_ATTRIBUTES

SECURITY_INFORMATION