Compartilhar via


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 de largura, chame a versão Unicode da função e prenda "\?" para o caminho. Para obter mais informações, consulte Nomeando um arquivo

Dica Começando com o Windows 10, versão 1607, para a versão unicode dessa função (CreateDirectoryW), você pode optar por remover a limitação de caracteres 248 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 lpSecurityDescriptor membro 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 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. 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.

Observações

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.

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

Tecnologia Suportado
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 Recuperar e alterar atributos de arquivo.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [aplicativos da área de trabalho | Aplicativos UWP]
servidor com suporte mínimo Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
cabeçalho winbase.h (inclua Windows.h)
biblioteca Kernel32.lib
de DLL Kernel32.dll

Consulte também

CreateDirectoryEx

CreateDirectoryTransacted

CreateFile

criando e excluindo diretórios

Funções de gerenciamento de diretório

RemoveDirectory

SECURITY_ATTRIBUTES

SECURITY_INFORMATION