FileSystemFileEntry

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

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.

Properties

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

Methods

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

Obsolete methods

createWriter()
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().

Example

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();
      bb.append('Meow');
      
      fileWriter.write(bb.getBlob('text/plain'));
    }, errorHandler);

  }, errorHandler);

}

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

Specifications

Specification Status Comment
File and Directory Entries API
The definition of 'FileSystemFileEntry' in that specification.
Draft Draft of proposed API

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
FileSystemFileEntryChrome Full support 13
Prefixed
Full support 13
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge No support No
Notes
No support No
Notes
Notes Edge implements this interface as part of the WebKitEntry interface, which is its name for FileSystemEntry.
Firefox Full support 50IE No support NoOpera No support NoSafari No support NoWebView Android Full support Yes
Prefixed
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support Yes
Prefixed
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 50Opera Android No support NoSafari iOS No support NoSamsung Internet Android Full support Yes
Prefixed
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
createWriter
DeprecatedNon-standard
Chrome Full support 13Edge No support NoFirefox No support 50 — 52
Notes
No support 50 — 52
Notes
Notes While the createWriter() method existed, it immediately called errorCallback with the NS_ERROR_DOM_SECURITY_ERR error.
IE No support NoOpera No support NoSafari No support NoWebView Android Full support YesChrome Android Full support YesFirefox Android No support 50 — 52
Notes
No support 50 — 52
Notes
Notes While the createWriter() method existed, it immediately called errorCallback with the NS_ERROR_DOM_SECURITY_ERR error.
Opera Android No support NoSafari iOS No support NoSamsung Internet Android Full support Yes
fileChrome Full support 13Edge No support NoFirefox Full support 50IE No support NoOpera No support NoSafari No support NoWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 50Opera Android No support NoSafari iOS No support NoSamsung Internet Android Full support Yes

Legend

Full support  
Full support
No support  
No support
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

See also