File and Directory Entries API

Не стандартно: Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.

API доступа к файлам и директориям имитирует локальную файловую систему, в которой веб-приложения могут перемещаться и получать доступ к файлам. Вы можете разрабатывать приложения, которые читают, записывают и создают файлы и/или каталоги в виртуальной изолированной файловой системе.

Примечание: Поскольку это нестандартный API, спецификация которого в настоящее время не входит в стандарт, важно помнить, что не все браузеры реализуют его, а те, которые поддерживают, могут реализовывать только небольшие его части. Дополнительные сведения в разделе Browser compatibility

Существуют два очень похожих API в зависимости от того, хотите ли вы асинхронного или синхронного поведения. Синхронный API предназначен для использования внутри Worker и будет возвращать желаемые значения. Асинхронный API не будет блокировать выполнение кода, а API не будет возвращать значения; вместо этого вам нужно будет предоставить колбэк-функцию для обработки одного или нескольких ответов.

Предупреждение: Firefox реализация File System API очень ограничена: не поддерживается создание файлов. Доступ к файлам осуществляется только через <input> элемент (см. так же HTMLInputElement) или путём перетаскивания файла/папки (drag and drop). Firefox также не реализует синхронный API. Внимательно проверьте совместимость браузера для любой части API, которую вы используете. ( см. Поддержка File System API в Firefox)

Получение доступа к файловой системе

Есть два способа получить доступ к файловой системе, определённым в текущем проекте спецификации:

Асинхронный API

Асинхронный API следует использовать для большинства операций, чтобы доступ к файловой системе не блокировал весь браузер, если он используется в основном потоке. Он включает в себя следующие интерфейсы:

FileSystem

Представляет файловую систему.

FileSystemEntry

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

FileSystemFileEntry

Представляет отдельный файл в файловой системе.

FileSystemDirectoryEntry

Представляет отдельный каталог в файловой системе.

FileSystemDirectoryReader

Созданный путём вызова FileSystemDirectoryEntry.createReader(), этот интерфейс предоставляет функции, которые позволяют вам читать содержимое каталога.

FileSystemFlags

Определяет набор значений, которые используются при указании флагов опций при вызове определённых методов в File System API.

FileError

Представляет ошибку, которая возникает при вызовах асинхронной файловой системы.

Также есть две глобальные функции (которые в настоящее время не являются частью спецификации и реализуются только в Google Chrome). Они доступны внутри объекта Window и реализованы в LocalFileSystem: requestFileSystem() и resolveLocalFileSystemURL().

Синхронный API

Синхронный API следует использовать только в Worker-ах; эти вызовы блокируются до тех пор, пока не закончат своё выполнение, и просто возвращают результаты вместо использования колбэков. Использование их в основном потоке заблокирует браузер, что непослушно. В противном случае интерфейсы ниже отражают интерфейсы асинхронного API.

FileSystemSync

Представляет файловую систему.

FileSystemEntrySync

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

FileSystemFileEntrySync

Представляет отдельный файл в файловой системе.

FileSystemDirectoryEntrySync

Представляет отдельный каталог в файловой системе.

FileSystemDirectoryReaderSync

Созданный путём вызова FileSystemDirectoryEntrySync.createReader(), этот интерфейс предоставляет функции, которые позволяют вам читать содержимое каталога.

FileException

Представляет ошибку, которая возникает при вызовах синхронной файловой системы.

Также есть две глобальные функции (которые в настоящее время не являются частью спецификации и реализуются только в Google Chrome). Они доступны в объекте Worker и реализованы вLocalFileSystemSync: requestFileSystemSync() и resolveLocalFileSystemSyncURL().

Другие интерфейсы

LocalFileSystem

Предоставляет вам доступ к изолированной файловой системе.

LocalFileSystemSync LockedFile

Предоставляет инструменты для работы с данным файлом со всеми необходимыми блокировками.

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

Specification
File and Directory Entries API
# api-domfilesystem

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

BCD tables only load in the browser

Смотрите также