FileSystemDirectoryHandle: getDirectoryHandle() method

Baseline 2023

Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

The getDirectoryHandle() method of the FileSystemDirectoryHandle interface returns a FileSystemDirectoryHandle for a subdirectory with the specified name within the directory handle on which the method is called.


getDirectoryHandle(name, options)



A string representing the of the subdirectory you wish to retrieve.

options Optional

An optional object containing options for the retrieved subdirectory. Options are as follows:

create Optional

A boolean value, which defaults to false. When set to true if the directory is not found, one with the specified name will be created and returned.

Return value

A Promise which resolves with a FileSystemDirectoryHandle.


NotAllowedError DOMException

Thrown if the PermissionStatus.state for the handle is not 'granted' in readwrite mode if the create option is set to true or in read mode if the create option is set to false.


Thrown if the name specified is not a valid string or contains characters that would interfere with the native file system.

TypeMismatchError DOMException

Thrown if the returned entry is a file and not a directory.

NotFoundError DOMException

Thrown if the current entry is not found or if the target directory doesn't exist and the create option is set to false.


The following example returns a directory handle with the specified name, if the directory does not exist it is created.

const dirName = "directoryToGetName";

// assuming we have a directory handle: 'currentDirHandle'
const subDir = currentDirHandle.getDirectoryHandle(dirName, { create: true });


File System Standard
# api-filesystemdirectoryhandle-getdirectoryhandle

Browser compatibility

BCD tables only load in the browser

See also