W3cubDocs

/DOM

FileSystemDirectoryEntry.createReader

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

Non-standard
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's method createReader() returns a FileSystemDirectoryReader object which can be used to read the entries in the directory.

Syntax

directoryReader = FileSystemDirectoryEntry.createReader();

Parameters

None.

Return value

A FileSystemDirectoryReader object which can be used to read the directory's entries.

Example

This example creates a method called readDirectory(), which fetches all of the entries in the specified FileSystemDIrectoryEntry and returns them in an array.

function readDirectory(directory) {
  let dirReader = directory.createReader();
  let entries = [];

  let getEntries = function() {
    dirReader.readEntries(function(results) {
      if (results.length) {
        entries = entries.concat(toArray(results));
        getEntries();
      }
    }, function(error) {
      /* handle error -- error is a FileError object */
    });
  };

  getEntries();
  return entries;
}

This works by creating an internal function, getEntries(), which calls itself recursively to get all the entries in the directory, concatenating each batch to the array. Each iteration, readEntries() is called to get more entries. When it returns an empty array, the end of the directory has beenr reached, and the recursion ends. Once control is returned to readDirectory(), the array is returned to the caller.

Specifications

Specification Status Comment
File and Directory Entries API
The definition of 'createDirectory()' in that specification.
Draft Initial specification.

This API has no official W3C or WHATWG specification.

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 13 No 50 No No No
Mobile
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support Yes Yes ? 50 No No ?

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader