Spec-Zone.ru › Web APIs

FileSystemDirectoryEntry: метод getDirectory()

Метод интерфейса FileSystemDirectoryEntry getDirectory() возвращает объект FileSystemDirectoryEntry, соответствующий каталогу, содержащемуся где-то в поддереве каталогов, укоренённом в каталоге, на котором он вызван.

Синтаксис

getDirectory()
getDirectory(path)
getDirectory(path, options)
getDirectory(path, options, successCallback)
getDirectory(path, options, successCallback, errorCallback)

Параметры

path Необязательный

Строка, представляющая абсолютный путь или путь, относительный к каталогу, на котором вызывается метод, описывающая, какую запись каталога вернуть. Абсолютные пути могут быть недоступны по соображениям безопасности.

options Необязательный

Объект, позволяющий указать, создавать ли запись, если она отсутствует, и является ли ошибкой существование файла. Эти параметры в настоящее время не применимы в контексте веб-приложений. Более подробную информацию см. в разделе «параметр options».

successCallback Необязательный

Метод, который вызывается после создания FileSystemDirectoryEntry. Метод получает единственный параметр: объект FileSystemDirectoryEntry, представляющий каталог.

errorCallback Необязательный

Метод, вызываемый в случае возникновения ошибки. Принимает в качестве единственного входного параметра объект DomException, описывающий произошедшую ошибку.

Параметр options

Объект параметра options принимает следующие параметры:

create Необязательный

Если это свойство имеет значение true, и запрашиваемый каталог не существует, пользовательский агент должен создать его. По умолчанию значение false. Родительский каталог должен уже существовать.

exclusive Необязательный

Если true, и параметр create также имеет значение true, каталог не должен существовать до вызова. Вместо этого он должен быть создан во время вызова. По умолчанию false. Этот параметр игнорируется, если create имеет значение false.

В таблице ниже описан результат каждой возможной комбинации этих флагов в зависимости от того, существует ли целевой путь к каталогу.

Параметр create Параметр exclusive Условие пути Результат
false Игнорируется Путь существует и является каталогом Функция successCallback вызывается с объектом FileSystemDirectoryEntry.
false Игнорируется Путь существует, но является файлом Функция errorCallback вызывается с соответствующим кодом ошибки (если был предоставлен обратный вызов).
true false Путь существует Существующий каталог удаляется и заменяется новым, затем successCallback вызывается с объектом FileSystemDirectoryEntry.
true false Путь не существует Каталог создается, затем объект FileSystemDirectoryEntry передается в successCallback.
true true Путь существует Функция errorCallback вызывается с соответствующей ошибкой, например, FileError.PATH_EXISTS_ERR.
true true Путь не существует Каталог создается, затем объект FileSystemDirectoryEntry передается в successCallback.

Возвращаемое значение

Пустое значение (undefined).

Исключения

NotFoundError DOMException

Выбрасывается, если параметр create не был указан (или был указан как false), и каталог не существует.

SecurityError DOMException

Выбрасывается, если запрос доступа к каталогу был отклонен по соображениям безопасности.

TypeMismatchError DOMException

Выбрасывается, если указанный путь не является каталогом; скорее всего, это файл, но это может быть и неподдерживаемый дескриптор файла, например, канал; это в некоторой степени зависит от пользовательского агента.

Примеры

В этом примере представлена функция, задача которой — найти в каталоге данных приложения JSON-файл, содержащий словарь пользователя для указанного языка, а затем загрузить этот словарь.

let dictionary = null;

function loadDictionaryForLanguage(appDataDirEntry, lang) {
  dictionary = null;

  appDataDirEntry.getDirectory("Dictionaries", {}, (dirEntry) => {
    dirEntry.getFile(`${lang}-dict.json`, {}, (fileEntry) => {
      fileEntry.file((dictFile) => {
        let reader = new FileReader();

        reader.addEventListener("loadend", () => {
          dictionary = JSON.parse(reader.result);
        });

        reader.readAsText(dictFile);
      });
    });
  });
}

Функция loadDictionaryForLanguage() начинает с использования getDirectory() для получения объекта FileSystemDirectoryEntry, представляющего подпапку с именем «Dictionaries», расположенную внутри указанного каталога данных приложения. Обратный вызов успеха для этого принимает результирующий объект записи каталога и вызывает getFile() для получения объекта FileSystemFileEntry, представляющего файл словаря; обратный вызов успеха для этого, в свою очередь, создаёт новый объект FileReader и использует его для загрузки содержимого файла. После успешной загрузки (как показано событием loadend) загруженный текст передается в JSON.parse() для преобразования в объект JavaScript.

Спецификации

Спецификация
API файлов и каталогов
# dom-filesystemdirectoryentry-getdirectory

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getDirectory 8 79
50В Firefox, входным параметром errorCallback является объект DOMException, а не FileError.
Нет 11.1 18
50В Firefox для Android, входным параметром errorCallback является объект DOMException, а не FileError.
14 11.3 1.0 ≤37

См. также

  • API файлов и каталогов
  • Введение в API файлов и каталогов
  • FileSystemDirectoryEntry

© 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/getDirectory

Spec-Zone.ru

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