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


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

Удаляет существующий пустой каталог.

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

Синтаксис

BOOL RemoveDirectoryW(
  [in] LPCWSTR lpPathName
);

Параметры

[in] lpPathName

Путь к удаляемой папке. Этот путь должен указывать пустой каталог, а вызывающий процесс должен иметь доступ к каталогу удаления.

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

Совет

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

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

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

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

Комментарии

Функция RemoveDirectory помечает каталог для удаления при закрытии. Таким образом, каталог не удаляется, пока последний дескриптор каталога не будет закрыт.

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

RemoveDirectory можно использовать для удаления соединения каталогов. Так как целевой каталог и его содержимое останутся доступными по каноническому пути, сам целевой каталог не влияет на удаление соединения, на который он нацелен. По этой причине, когда lpPathName ссылается на соединение каталогов, RemoveDirectory удалит указанную ссылку независимо от того, является ли целевой каталог пустым или нет. Дополнительные сведения о соединениях см. в разделе Жесткие связи и соединения.

При использовании метода УДАЛЕНИЯ POSIX каталог удаляется, а дескриптор остается открытым. Последующие вызовы CreateDirectory для открытия каталога завершаются сбоем с ERROR_FILE_NOT_FOUND.

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

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

Примечание

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

Требования

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

См. также

CreateDirectory

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

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

RemoveDirectoryTransacted