FileSystemDirectoryEntry: метод removeRecursively()
Устаревший: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её всё ещё поддерживать, она может быть удалена из соответствующих веб-стандартов, находится в процессе удаления или сохраняется только для совместимости. Избегайте её использования и, если возможно, обновите существующий код; см. таблицу совместимости внизу этой страницы для принятия решения. Имейте в виду, что эта функция может перестать работать в любое время.
Нестандартный: Эта функция нестандартна и не соответствует стандартам. Не используйте её на производственных сайтах, обращённых к сети: она не будет работать для каждого пользователя. Также могут быть значительные несовместимости между реализациями, и поведение может измениться в будущем.
Метод интерфейса FileSystemDirectoryEntry removeRecursively() удаляет директорию и всё её содержимое, итеративно перебирая всё поддерево из дочерних файлов и директорий.
Чтобы удалить один файл или пустую директорию, можно также использовать FileSystemEntry.remove().
Синтаксис
removeRecursively(successCallback) removeRecursively(successCallback, errorCallback)
Параметры
successCallback-
Функция, вызываемая после завершения процесса удаления директории. У коллбэка нет параметров.
errorCallbackНеобязательно-
Функция, вызываемая при возникновении ошибки во время попытки удалить поддерево директории. Получает
FileError, описывающий произошедшую ошибку.
Возвращаемое значение
None (undefined).
Исключения
Если возникает ошибка, и был указан errorCallback, он вызывается с одним параметром: объектом FileError, описывающим ошибку. FileError.code указывает тип произошедшей ошибки, как следует:
FileError.INVALID_MODIFICATION_ERR-
Была предпринята попытка удалить корневую директорию; это запрещено.
FileError.NO_MODIFICATION_ALLOWED_ERR-
Состояние файловой системы не допускает модификаций.
FileError.NOT_FOUND_ERR-
Директория, представленная объектом
FileSystemDirectoryEntry, больше не существует. FileError.NOT_READABLE_ERR-
К директории нет доступа; возможно, она используется другим приложением или заблокирована на уровне операционной системы.
FileError.SECURITY_ERR-
Директория не могла быть удалена по соображениям безопасности. Возможные причины включают:
- Директория и/или её содержимое могут быть небезопасными для доступа из веб-приложения.
- Делается слишком много системных вызовов для файла.
- Другие соображения безопасности, поднятые пользователем или операционной системой.
Примечание: Если вы пытаетесь удалить директорию, содержащую один или несколько файлов, которые не могут быть удалены, или если во время удаления нескольких файлов возникает ошибка, некоторые файлы могут не быть удалены. Вы должны предоставить errorCallback для отслеживания и обработки этого, возможно, повторив попытку.
Примеры
directory.removeRecursively(
() => {
/* The directory was removed successfully */
},
() => {
/* an error occurred while removing the directory */
},
);
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
removeRecursively |
8 | 79 | 50–52Хотя методremoveRecursively() существовал, он сразу вызывал коллбэк с ошибкой NS_ERROR_DOM_SECURITY_ERR. |
Нет | Нет | 18 | 50–52Хотя методremoveRecursively() существовал, он сразу вызывал коллбэк с ошибкой NS_ERROR_DOM_SECURITY_ERR. |
14 | Нет | 1.0 | ≤37 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/removeRecursively