Функция DeleteFile удаляет существующий файл.
BOOL DeleteFile (
LPCTSTR lpFileName
);
Параметры:
Адрес нульзаканчивающейся строки, которая определяет имя удаляемого файла. В ANSI-версия этой функции, имя ограничено в MAX_PATH символов. Для увеличения этого предела до 32,767 широких символов, вызывайте Unicode-версию функции, добавив к пути "\\?\". Windows Me/98/95: Эта строка не должна превышать MAX_PATH символов. |
Возвращаемые значения:
Если вызов функции успешен, возвращается ненулевое значение.
При ошибке возвращается ноль. Для получения дополнительной информации об ошибке, вызывайте GetLastError.
При ошибке возвращается ноль. Для получения дополнительной информации об ошибке, вызывайте GetLastError.
Замечания:
Если приложение пытается удалить несуществующий файл, функция DeleteFile завершится с ошибкой ERROR_FILE_NOT_FOUND. Если это файл только-для-чтения, функция завершится с ошибкой ERROR_ACCESS_DENIED.
Следующий список описывает некоторые особенности удаления, замещения, или закрытия файлов:
Следующий список описывает некоторые особенности удаления, замещения, или закрытия файлов:
- Для удаления файла только-для-чтения, сначала вы должны очистить его атрибут только-для-чтения.
- Для удаления или переименования файла, вы должны иметь либо доступ на удаление файла, либо дочерний доступ на удаление в родительской директории.
- Для рекурсивного удаления файлов в директории, воспользуйтесь функцией SHFileOperation.
- Для удаления пустой директории, воспользуйтесь функцией RemoveDirectory.
- Для закрытия открытого файла, воспользуйтесь функцией CloseHandle.
Если вы запрашиваете доступ на удаление во время создания файла, вы можете удалить или переименовать файл с этим дескриптором, но не с любым другим.
Функция DeleteFile помечает файл на удаление при закрытии. Поэтому, удаление файла не происходит, пока не будет закрыт последний дескриптор файла. Последующие вызовы CreateFile для открытия файла, возвратятся с ошибкой ERROR_ACCESS_DENIED.
Если путь указывает на символическую ссылку, удаляется символическая ссылка, но не цель ссылки. Для удаления цели ссылки, вы должны вызвыть CreateFile и задать FILE_FLAG_DELETE_ON_CLOSE.
Функция DeleteFile помечает файл на удаление при закрытии. Поэтому, удаление файла не происходит, пока не будет закрыт последний дескриптор файла. Последующие вызовы CreateFile для открытия файла, возвратятся с ошибкой ERROR_ACCESS_DENIED.
Если путь указывает на символическую ссылку, удаляется символическая ссылка, но не цель ссылки. Для удаления цели ссылки, вы должны вызвыть CreateFile и задать FILE_FLAG_DELETE_ON_CLOSE.