{{APIRef("File System API")}}{{Non-standard_header}}
The FileSystemDirectoryEntry
interface of the File and Directory Entries API represents a directory in a file system. It provides methods which make it possible to access and manipulate the files in a directory, as well as to access the entries within the directory.
Because this is a non-standard API, whose specification is not currently on a standards track, it's important to keep in mind that not all browsers implement it, and those that do may implement only small portions of it. Check the {{anch("Browser compatibility")}} section for details.
Basic concepts
You can create a new directory by calling {{domxref("FileSystemDirectoryEntry.getDirectory", "getDirectory()")}}. If you want to create subdirectories, create each child directory in sequence. If you try creating a directory using a full path that includes parent directories that do not exist yet, an error is returned. So create the hierarchy by recursively adding a new path after creating the parent directory.
Example
In the following code snippet, we create a directory called "Documents."
// Taking care of the browser-specific prefixes. window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; window.directoryEntry = window.directoryEntry || window.webkitDirectoryEntry; ... function onFs(fs){ fs.root.getDirectory('Documents', {create:true}, function(directoryEntry){ //directoryEntry.isFile === false //directoryEntry.isDirectory === true //directoryEntry.name === 'Documents' //directoryEntry.fullPath === '/Documents' }, onError); } // Opening a file system with temporary storage window.requestFileSystem(TEMPORARY, 1024*1024 /*1MB*/, onFS, onError);
Properties
This interface has no properties of its own, but inherits properties from its parent interface, {{domxref("FileSystemEntry")}}.
Methods
This interface inherits methods from its parent interface, {{domxref("FileSystemEntry")}}.
- {{domxref("FileSystemDirectoryEntry.createReader", "createReader()")}}
- Creates a {{domxref("FileSystemDirectoryReader")}} object which can be used to read the entries in this directory.
- {{domxref("FileSystemDirectoryEntry.getDirectory", "getDirectory()")}}
- Returns a {{domxref("FileSystemDirectoryEntry")}} object representing a directory located at a given path, relative to the directory on which the method is called.
- {{domxref("FileSystemDirectoryEntry.getFile", "getFile()")}}
- Returns a {{domxref("FileSystemFileEntry")}} object representing a file located within the directory's hierarchy, given a path relative to the directory on which the method is called.
- {{domxref("FileSystemDirectoryEntry.removeRecursively", "removeRecursively()")}}
- Deletes a directory and all of its contents, including the contents of subdirectories.
Specifications
Specification | Status | Comment |
---|---|---|
{{SpecName('File System API')}} | {{Spec2('File System API')}} | Draft of proposed API |
This API has no official W3C or WHATWG specification.
Browser compatibility
{{ CompatibilityTable }}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 13 {{ property_prefix("webkit") }} | {{ CompatGeckoDesktop(50) }}[2] | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} |
removeRecursively() |
13 {{ property_prefix("webkit") }} | {{ CompatNo }}[1] | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{ CompatNo }} | 0.16 {{ property_prefix("webkit") }} | {{ CompatGeckoDesktop(50) }}[2] | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} |
removeRecursively() |
{{ CompatNo }} | 0.16 {{ property_prefix("webkit") }} | {{ CompatNo }}[1] | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} |
[1] While the {{domxref("FileSystemDirectoryEntry.removeRecursively", "removeRecursively()")}} method exists in Firefox 50, all it does is immediately call the error callback with NS_ERROR_DOM_SECURITY_ERR
.
[2] In Firefox, the error callback's parameter is a {{domxref("DOMError")}} rather than a {{domxref("FileError")}} object.
See also
- File and Directory Entries API
- Introduction to the File System API
- {{domxref("FileSystemDirectoryReader")}}
- {{domxref("FileSystemEntry")}}
- {{domxref("FileSystemFileEntry")}}