files/en-us/web/api/filesystemdirectoryentry/createreader/index.md
{{APIRef("File and Directory Entries API")}}
The {{domxref("FileSystemDirectoryEntry")}} interface's method
createReader() returns a
{{domxref("FileSystemDirectoryReader")}} object which can be used to read the entries in
the directory.
createReader()
None.
A {{domxref("FileSystemDirectoryReader")}} object which can be used to read the directory's entries.
This example creates an async function called readDirectory(), which fetches all of
the entries in the specified {{domxref("FileSystemDirectoryEntry")}} and returns them in
an array.
async function readDirectory(directory) {
const dirReader = directory.createReader();
const entries = [];
while (true) {
const results = await new Promise((resolve, reject) => {
dirReader.readEntries(resolve, reject);
});
if (!results.length) {
break;
}
for (const entry of results) {
entries.push(entry);
}
}
return entries;
}
This works by calling {{domxref("FileSystemDirectoryReader.readEntries", "readEntries()")}} repetitively to get all the entries in the directory, concatenating each batch to the array. When it returns an empty array, all entries have been read, and the loop ends.
{{Specifications}}
{{Compat}}