Поделиться через


Функция CreateDirectoryA (fileapi.h)

Создает каталог. Если базовая файловая система поддерживает безопасность файлов и каталогов, функция применяет указанный дескриптор безопасности к новому каталогу.

Чтобы указать каталог шаблона, используйте функцию CreateDirectoryEx .

Чтобы выполнить эту операцию как транзакцию, используйте функцию CreateDirectoryTransacted .

Синтаксис

BOOL CreateDirectoryA(
  [in]           LPCSTR                lpPathName,
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

Параметры

[in] lpPathName

Путь к создаваемому каталогу.

По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 символов в ширину, добавьте к пути "\\?\". Дополнительные сведения см. в статье Именование файлов, путей и пространств имен.

Совет

Начиная с Windows 10 версии 1607, вы можете согласиться на удаление ограничения MAX_PATH без добавления "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" статьи Именование файлов, путей и пространств имен .

[in, optional] lpSecurityAttributes

Указатель на структуру SECURITY_ATTRIBUTES . Член lpSecurityDescriptor структуры задает дескриптор безопасности для нового каталога. Если lpSecurityAttributes имеет значение NULL, каталог получает дескриптор безопасности по умолчанию. Списки управления доступом в дескрипторе безопасности по умолчанию для каталога наследуются от его родительского каталога.

Целевая файловая система должна поддерживать безопасность файлов и каталогов, чтобы этот параметр действовал. (Это указывается, когда GetVolumeInformation возвращает FS_PERSISTENT_ACLS.)

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. Возможные ошибки:

Код возврата Описание
ERROR_ALREADY_EXISTS
Указанный каталог уже существует.
ERROR_PATH_NOT_FOUND
Один или несколько промежуточных каталогов не существуют; Эта функция создает только окончательный каталог в пути.

Комментарии

Некоторые файловые системы, такие как файловая система NTFS, поддерживают сжатие или шифрование для отдельных файлов и каталогов. На томах, отформатированных для такой файловой системы, новый каталог наследует атрибуты сжатия и шифрования родительского каталога.

Приложение может получить дескриптор каталога, вызвав CreateFile с установленным флагом FILE_FLAG_BACKUP_SEMANTICS . Пример кода см. в разделе CreateFile.

Для поддержки функций наследования, которые запрашивают дескриптор безопасности этого объекта, можно эвристически определить и сообщить о действии наследования. Дополнительные сведения см. в статье Автоматическое распространение наследуемых ACE .

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
Прозрачная отработка отказа (TFO) SMB 3.0 Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

Примеры

Пример см. в разделе Извлечение и изменение атрибутов файла.

Примечание

Заголовок fileapi.h определяет CreateDirectory как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header fileapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CreateDirectoryEx

CreateDirectoryTransacted

CreateFile

Создание и удаление каталогов

Функции управления каталогами

RemoveDirectory

SECURITY_ATTRIBUTES

SECURITY_INFORMATION