This is an experimental technology
Check 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:
- 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 aFileSystem
object describing the file system. - 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 API The definition of 'FileSystem' in that specification. |
Draft |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
FileSystem | 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
|
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.