File and Directory Entries API

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

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

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

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

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

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

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

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

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

FileSystem (en-US)

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

FileSystemEntry (en-US)

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

FileSystemFileEntry (en-US)

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

FileSystemDirectoryEntry (en-US)

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

FileSystemDirectoryReader (en-US)

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

FileSystemFlags (en-US)

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

FileError

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

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

Синхронный API

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

FileSystemSync (en-US)

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

FileSystemEntrySync (en-US)

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

FileSystemFileEntrySync

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

FileSystemDirectoryEntrySync

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

FileSystemDirectoryReaderSync

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

FileException (en-US)

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

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

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

LocalFileSystem (en-US)

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

LocalFileSystemSync (en-US) LockedFile (en-US)

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

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

Specification
File and Directory Entries API
# api-domfilesystem

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

BCD tables only load in the browser

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