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
Предоставляет инструменты для работы с данным файлом со всеми необходимыми блокировками.
Metadata Это экспериментальное API, которое не должно использоваться в рабочем коде.

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

Specification Status Comment
File and Directory Entries API Черновик Draft of proposed API

Этот API не имеет официальной спецификации W3C или WHATWG.

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

BCD tables only load in the browser

BCD tables only load in the browser

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