This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

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 Browser compatibility section for details.

Basic concepts

You can create a new directory by calling 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.


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
    // === 'Documents'
    //directoryEntry.fullPath === '/Documents'
    }, onError);


// Opening a file system with temporary storage
window.requestFileSystem(TEMPORARY, 1024*1024 /*1MB*/, onFS, onError);


This interface has no properties of its own, but inherits properties from its parent interface, FileSystemEntry.


This interface inherits methods from its parent interface, FileSystemEntry.

Creates a FileSystemDirectoryReader object which can be used to read the entries in this directory.
Returns a FileSystemDirectoryEntry object representing a directory located at a given path, relative to the directory on which the method is called.
Returns a FileSystemFileEntry object representing a file located within the directory's hierarchy, given a path relative to the directory on which the method is called.
Deletes a directory and all of its contents, including the contents of subdirectories.


Specification Status Comment
File and Directory Entries API Editor's Draft Draft of proposed API

This API has no official W3C or WHATWG specification.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 13 webkit 50 (50)[2] No support No support No support
removeRecursively() 13 webkit No support[1] No support No support No support
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support No support 0.16 webkit 50 (50)[2] No support No support No support
removeRecursively() No support 0.16 webkit No support[1] No support No support No support

[1] While the 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 DOMError rather than a FileError object.

See also


© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

API File and Directory Entries API File API File System API Files FileSystemDirectoryEntry Interface NeedsMarkupWork Non-standard Non-Standard Offline offline Reference