We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS


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 FileSystemFileEntry interface of the File System API represents a file in a file system. It offers properties describing the file's attributes, as well as the file() method, which creates a File object that can be used to read the file.

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.


Inherits the properties of its parent interface, FileSystemEntry, but has no properties unique to this interface.


Creates a new File object which can be used to read the file.

Obsolete methods

Creates a new FileWriter object which allows writing to the file represented by the file system entry.

Basic concepts

To write content to file, create a FileWriter object by calling createWriter(). To read a file, obtain a File object representing its contents by calling file().


The following code creates an empty file called "log.txt" (if it doesn't exist) and fills it with the text "Meow". Inside the success callback, event handlers are set up to handle the error error and writeend events. The text data is written to the file by creating a blob, appending text to it, and passing the blob to FileWriter.write().

function onInitFs(fs) {
  fs.root.getFile('log.txt', {create: true}, function(fileEntry) {

    // Create a FileWriter object for our FileSystemFileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {
      fileWriter.onwriteend = function(e) {
        console.log('Write completed.');

      fileWriter.onerror = function(e) {
        console.log('Write failed: ' + e.toString());

      // Create a new Blob and write it to log.txt.
      var bb = new BlobBuilder();
    }, errorHandler);

  }, errorHandler);


window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);


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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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

[1] While the createWriter() method exists starting in Firefox 50, it is not supported, and immediately reports an NS_ERROR_DOM_SECURITY_ERR error to the error callback. The method was removed entirely in Firefox 52.

[2] Microsoft Edge implements this interface as part of the WebKitEntry interface, which is its name for FileSystemEntry.

See also

Document Tags and Contributors

Last updated by: chrisdavidmills,