--- title: File and Directory Entries API slug: Web/API/File_and_Directory_Entries_API tags: - API - File System API - File and Directory Entries API - Files - NeedsTranslation - Non-standard - Overview - Reference - TopicStub translation_of: Web/API/File_and_Directory_Entries_API ---

{{DefaultAPISidebar("File System API")}}

{{Non-standard_Header}}

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

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

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

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

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

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

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

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

{{domxref("FileSystem")}}
Представляет файловую систему.
{{domxref("FileSystemEntry")}}
Базовый интерфейс, представляющий одну запись в файловой системе. Это реализуется другими интерфейсами, которые представляют файлы или каталоги.
{{domxref("FileSystemFileEntry")}}
Представляет отдельный файл в файловой системе.
{{domxref("FileSystemDirectoryEntry")}}
Представляет отдельный каталог в файловой системе.
{{domxref("FileSystemDirectoryReader")}}
Созданный путём вызова {{domxref("FileSystemDirectoryEntry.createReader()")}}, этот интерфейс предоставляет функции, которые позволяют вам читать содержимое каталога.
{{domxref("FileSystemFlags")}}
Определяет набор значений, которые используются при указании флагов опций при вызове определённых методов в File System API.
{{domxref("FileError")}}
Представляет ошибку, которая возникает при вызовах асинхронной файловой системы.

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

Синхронный API

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

{{domxref("FileSystemSync")}}
Представляет файловую систему.
{{domxref("FileSystemEntrySync")}}
Базовый интерфейс, представляющий одну запись в файловой системе. Это реализуется другими интерфейсами, которые представляют файлы или каталоги. {{domxref("EntrySync")}}
{{domxref("FileSystemFileEntrySync")}}
Представляет отдельный файл в файловой системе.
{{domxref("FileSystemDirectoryEntrySync")}}
Представляет отдельный каталог в файловой системе.
{{domxref("FileSystemDirectoryReaderSync")}}
Созданный путём вызова {{domxref("FileSystemDirectoryEntrySync.createReader()")}}, этот интерфейс предоставляет функции, которые позволяют вам читать содержимое каталога.
{{domxref("FileException")}}
Представляет ошибку, которая возникает при вызовах синхронной файловой системы.

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

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

{{domxref("LocalFileSystem")}}
Предоставляет вам доступ к изолированной файловой системе.
{{domxref("LocalFileSystemSync")}}
{{domxref("LockedFile")}}
Предоставляет инструменты для работы с данным файлом со всеми необходимыми блокировками.
{{domxref("Metadata")}}{{experimental_inline}}

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

Specification Status Comment
{{SpecName('File System API')}} {{Spec2('File System API')}} Draft of proposed API

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

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

{{Compat}}

{{Compat("api.FileSystemSync", 0)}}

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