Spec-Zone.ru › Web APIs

FileSystemDirectoryEntry: метод getFile()

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

Синтаксис

getFile()
getFile(path)
getFile(path, options)
getFile(path, options, successCallback)
getFile(path, options, successCallback, errorCallback)

Параметры

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

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

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

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

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

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

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

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

Параметр options

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

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

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

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

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

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

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

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

None (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.

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

Спецификация
File and Directory Entries API
# dom-filesystemdirectoryentry-getfile

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

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

См. также

  • File and Directory Entries API
  • Введение в File and Directory Entries API
  • FileSystemFileEntry

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

Spec-Zone.ru

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