File and Directory Entries API
The File and Directory Entries API simulates a local file system that web apps can navigate within and access files in. You can develop apps which read, write, and create files and/or directories in a virtual, sandboxed file system.
Getting access to a file system
There are two ways to get access to file systems defined in the current specification draft:
- When handling a
drop
event for drag and drop, you can callDataTransferItem.webkitGetAsEntry()
to get theFileSystemEntry
for a dropped item. If the result isn'tnull
, then it's a dropped file or directory, and you can use file system calls to work with it. - The
HTMLInputElement.webkitEntries
property lets you access theFileSystemFileEntry
objects for the currently selected files, but only if they are dragged-and-dropped onto the file chooser (bug 1326031). IfHTMLInputElement.webkitdirectory
istrue
, the<input>
element is instead a directory picker, and you getFileSystemDirectoryEntry
objects for each selected directory.
Interfaces
The File and Directory Entries API includes the following interfaces:
FileSystem
-
Represents a file system.
FileSystemEntry
-
The basic interface representing a single entry in a file system. This is implemented by other interfaces which represent files or directories.
FileSystemFileEntry
-
Represents a single file in a file system.
FileSystemDirectoryEntry
-
Represents a single directory in a file system.
FileSystemDirectoryReader
-
Created by calling
FileSystemDirectoryEntry.createReader()
, this interface provides the functionality which lets you read the contents of a directory. FileSystemFlags
-
Defines a set of values which are used when specifying option flags when calling certain methods in the File and Directory Entries API.
Specifications
Specification |
---|
File and Directory Entries API # api-domfilesystem |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
File_and_Directory_Entries_API |
7 |
≤18
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. |
50 |
No |
15 |
11.1 |
≤37 |
18 |
50 |
14 |
11.3 |
1.0 |
name |
7 |
≤18 |
50 |
No |
15 |
11.1 |
≤37 |
18 |
50 |
14 |
11.3 |
1.0 |
root |
7 |
≤18 |
50 |
No |
15 |
11.1 |
≤37 |
18 |
50 |
14 |
11.3 |
1.0 |
See also
- Introduction to the File and Directory Entries API
- File and Directory Entries API support in Firefox
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/File_and_Directory_Entries_API