Функция RemoveDirectoryA (fileapi.h)
Удаляет существующий пустой каталог.
Чтобы выполнить эту операцию как транзакцию, используйте функцию RemoveDirectoryTransacted.
Синтаксис
BOOL RemoveDirectoryA(
[in] LPCSTR 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 | Да |
Отработка отказа SMB 3.0 (TFO) | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Отказоустойчивая файловая система (ReFS) | Да |
Заметка
Заголовок fileapi.h определяет RemoveDirectory как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2003 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | fileapi.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |
См. также
функций управления каталогами