FileSystemDirectoryHandle:getDirectoryHandle() 方法

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.

安全上下文: 此项功能仅在一些支持的浏览器安全上下文(HTTPS)中可用。

备注: 此特性在 Web Worker 中可用。

FileSystemDirectoryHandle 接口的 getDirectoryHandle() 方法返回一个位于调用此方法的目录句柄内带有指定名称的子目录的 FileSystemDirectoryHandle

语法

js
getDirectoryHandle(name)
getDirectoryHandle(name, options)

参数

name

一个字符串,表示你想要获得的子目录的 FileSystemHandle.name

options 可选

包含要获得的子目录的选项的可选对象。选项如下:

create 可选

布尔值,默认为 false。当设为 true 时,如果没有找到对应的目录,将会创建一个指定名称的目录并将其返回。

返回值

一个 Promise 对象,会兑现一个 FileSystemDirectoryHandle

异常

NotAllowedError DOMException

如果句柄的 PermissionStatus.statereadwrite 模式下不是 'granted'(如果 create 选项设置为 true),或在 read 模式下不是 'granted'(如果 create 选项设置为 false)。

NotAllowedError DOMException

如果 PermissionStatus 不为“granted”则抛出此异常。

TypeError

如果指定的名称不是一个合法的字符串或者包含会干扰本地文件系统的字符则抛出此异常。

TypeMismatchError DOMException

如果将返回的条目是个文件而不是目录时会抛出此异常。

NotFoundError DOMException

如果未找到当前条目或文件不存在且 create 选项设置为 false,抛出该异常。

示例

下面的示例能够取得指定名称的目录句柄,如果目录不存在,则创建。

js
const dirName = "directoryToGetName";

// 假设我们有一个目录句柄:'currentDirHandle'
const subDir = currentDirHandle.getDirectoryHandle(dirName, { create: true });

规范

Specification
File System Standard
# api-filesystemdirectoryhandle-getdirectoryhandle

浏览器兼容性

BCD tables only load in the browser

参见