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).
Исключения
-
NotFoundErrorDOMException -
Выбрасывается, если параметр
createне был указан (или был указан какfalse) и файл не существует. -
SecurityErrorDOMException -
Выбрасывается, если запрос доступа к файлу был отклонен по соображениям безопасности.
-
TypeMismatchErrorDOMException -
Выбрасывается, если указанный путь не является файлом; он, вероятно, является каталогом, но может быть и недоступным дескриптором файла, например, конвейгом; это в какой-то степени зависит от пользовательского агента.
Примеры
В этом примере представлена функция, задача которой — найти в каталоге данных приложения 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.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
getFile |
8 | 79 | Нет | 11.1 | 18 | 50В Firefox для Android, входной параметр методаerrorCallback - объект DOMException, а не FileError. |
14 | 11.3 | 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/getFile