Web/API/FileSystem

From Get docs

This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.


The File and Directory Entries API interface FileSystem is used to represent a file system. These objects can be obtained from the filesystem property on any file system entry. Some browsers offer additional APIs to create and manage file systems, such as Chrome's requestFileSystem() method.

This interface will not grant you access to the users filesystem. Instead you will have a "virtual drive" within the browser sandbox. If you want to gain access to the users filesystem you need to invoke the user by eg. installing a Chrome extension. The relevant Chrome API can be found here.

Basic concepts

There are two ways to get access to a FileSystem object:

  1. You can directly ask for one representing a sandboxed file system created just for your web app directly by calling window.requestFileSystem().  If that call is successful, it executes a callback handler, which receives as a parameter a FileSystem object describing the file system.
  2. You can get it from a file system entry object, through its filesystem property.

Properties

FileSystem.name Read only
A USVString representing the file system's name. This name is unique among the entire list of exposed file systems.
FileSystem.root Read only
A FileSystemDirectoryEntry object which represents the file system's root directory. Through this object, you can gain access to all files and directories in the file system.

Specifications

Specification Status Comment
File and Directory Entries APIThe definition of 'FileSystem' in that specification. Draft

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
FileSystem

Chrome Full support 7

Alternate Name'

Full support 7

Alternate Name'

Alternate Name' Uses the non-standard name: DOMFileSystem

Edge Full support ≤18

Prefixed' Notes'

Full support ≤18

Prefixed' Notes'

Prefixed' Implemented with the vendor prefix: WebKit Notes' Edge only supports this API in drag-and-drop scenarios using the the DataTransferItem.webkitGetAsEntry() method. It's not available for use in file or folder picker panels (such as when you use an <input> element with the HTMLInputElement.webkitdirectory attribute.

Firefox

Full support 50

IE

No support No

Opera Full support 15

Prefixed'

Full support 15

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Safari

Full support 11.1

WebView Android Full support ≤37

Alternate Name'

Full support ≤37

Alternate Name'

Alternate Name' Uses the non-standard name: DOMFileSystem

Chrome Android Full support 18

Alternate Name'

Full support 18

Alternate Name'

Alternate Name' Uses the non-standard name: DOMFileSystem

Firefox Android

Full support 50

Opera Android Full support 14

Prefixed'

Full support 14

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Safari iOS

Full support 11.3

Samsung Internet Android Full support 1.0

Prefixed'

Full support 1.0

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

name Chrome

Full support 7

Edge

Full support ≤18

Firefox

Full support 50

IE

No support No

Opera

Full support 15

Safari

Full support 11.1

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android

Full support 50

Opera Android

Full support 14

Safari iOS

Full support 11.3

Samsung Internet Android

Full support 1.0

root Chrome

Full support 7

Edge

Full support ≤18

Firefox

Full support 50

IE

No support No

Opera

Full support 15

Safari

Full support 11.1

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android

Full support 50

Opera Android

Full support 14

Safari iOS

Full support 11.3

Samsung Internet Android

Full support 1.0

Legend

Full support  
Full support
No support  
No support
See implementation notes.'
See implementation notes.
Uses a non-standard name.'
Uses a non-standard name.
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also