Spec-Zone.ru › Web APIs

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

См. также

  • API файлов и директорий
  • Введение в API файлов и директорий
  • FileSystemDirectoryEntry
  • FileSystemEntry.remove()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API