FileSystemFileEntry: file() method

The FileSystemFileEntry interface's method file() returns a File object which can be used to read data from the file represented by the directory entry.

Syntax

js
file(successCallback)
file(successCallback, errorCallback)

Parameters

successCallback

A callback function which is called when the File has been created successfully; the File is passed into the callback as the only parameter.

errorCallback Optional

If provided, this must be a method which is called when an error occurs while trying to create the File. This callback receives as input a DOMException object describing the error.

Return value

None (undefined).

Examples

This example establishes a method, readFile(), reads a text file and calls a specified callback function with the received text (in a string) once the read is completed. If an error occurs, a specified (optional) error callback is called.

js
function readFile(entry, successCallback, errorCallback) {
  entry.file((file) => {
    let reader = new FileReader();

    reader.onload = () => {
      successCallback(reader.result);
    };

    reader.onerror = () => {
      errorCallback(reader.error);
    };

    reader.readAsText(file);
  }, errorCallback);
}

This function calls file(), specifying as its success callback a method which proceeds to use a FileReader to read the file as text. The FileReader's load event handler is set up to deliver the loaded string to the successCallback specified when the readFile() method was called; similarly, its error handler is set up to call the errorCallback specified.

Specifications

Specification
File and Directory Entries API
# dom-filesystemfileentry-file

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
file
Chrome – Full support
Chrome 8 (Release date: 2010-12-02)
footnote Full support
Edge – Full support
Edge 79 (Release date: 2020-01-15)
footnote Full support
Firefox – Full support
Firefox 50 (Release date: 2016-11-15)
footnote Full support
Opera – Full support
Opera 15 (Release date: 2013-07-02)
footnote Full support
Safari – Full support
Safari 11.1 (Release date: 2018-04-12)
footnote Full support
Chrome Android – Full support
Chrome Android 18 (Release date: 2012-06-27)
footnote Full support
Firefox for Android – Full support
Firefox for Android 50 (Release date: 2016-11-15)
footnote Full support
Opera Android – Full support
Opera Android 14 (Release date: 2013-05-21)
footnote Full support
Safari on iOS – Full support
Safari on iOS 11.3 (Release date: 2018-03-29)
footnote Full support
Samsung Internet – Full support
Samsung Internet 1 (Release date: 2013-04-27)
footnote Full support
WebView Android – Full support
WebView Android 4.4 (Release date: 2013-12-09)
footnote Full support
WebView on iOS – Full support
WebView on iOS 11.3 (Release date: 2018-03-29)
footnote Full support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also