Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Удаляет существующий файл.
Чтобы выполнить эту операцию как транзакцию, используйте функцию DeleteFileTransacted .
Syntax
BOOL DeleteFile(
[in] LPCTSTR lpFileName
);
Parameters
[in] lpFileName
Имя файла, предназначенного для удаления.
По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 расширенных символов, добавьте "\\?\" в путь. Дополнительные сведения см. в разделе Именование файлов, путей и пространств имен.
Tip
Начиная с Windows 10 версии 1607, вы можете отказаться от ограничения MAX_PATH без предустановки "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" файлы именования, пути и пространства имен.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция завершается ошибкой, возвращаемое значение равно нулю (0). Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Если приложение пытается удалить файл, который не существует, функция DeleteFile завершается ошибкой с ERROR_FILE_NOT_FOUND. Если файл является файлом только для чтения, функция завершается ошибкой с ERROR_ACCESS_DENIED.
В следующем списке указаны некоторые советы по удалению, удалению или закрытию файлов:
- Чтобы удалить файл только для чтения, сначала необходимо удалить атрибут только для чтения.
- Чтобы удалить или переименовать файл, необходимо либо удалить разрешение на удаление файла, либо удалить дочернее разрешение в родительском каталоге.
- Чтобы рекурсивно удалить файлы в каталоге, используйте функцию SHFileOperation .
- Чтобы удалить пустой каталог, используйте функцию RemoveDirectory .
- Чтобы закрыть открытый файл, используйте функцию CloseHandle .
Если вы запрашиваете разрешение на удаление во время создания файла, вы можете удалить или переименовать файл с этим дескриптором, но не с другими дескрипторами. Дополнительные сведения см. в разделе "Безопасность файлов и права доступа".
Функция DeleteFile завершается ошибкой, если приложение пытается удалить файл с другими открытыми дескрипторами, которые были открыты без FILE_SHARE_DELETE или сопоставлены с памятью.
Функция DeleteFile помечает файл для удаления при закрытии. Поэтому удаление файла не происходит до закрытия последнего дескриптора файла. Последующие вызовы CreateFile , чтобы открыть файл сбоем с ERROR_ACCESS_DENIED.
Поведение символьной ссылки—
Если путь указывает на символьную ссылку, то символьная ссылка удаляется, а не целевой объект. Чтобы удалить целевой объект, необходимо вызвать CreateFile и указать FILE_FLAG_DELETE_ON_CLOSE.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
| Технологии | Поддерживается |
|---|---|
| Протокол SMB 3.0 | Да |
| Отработка отказа SMB 3.0 (TFO) | Да |
| SMB 3.0 с масштабируемыми общими папками (SO) | Да |
| Файловая система общего тома кластера (CSVFS) | Да |
| Отказоустойчивая файловая система (ReFS) | Да |
Examples
Пример см. в разделе "Блокировка и разблокировка диапазонов байтов" в файлах.
Требования
| Requirement | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows XP [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2003 [классические приложения | Приложения UWP] |
| целевая платформа | Windows |
| Заголовка | winbase.h (включая Windows.h) |
| Библиотека | Kernel32.lib |
| DLL | Kernel32.dll |