此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

FileSystemDirectoryHandle:getDirectoryHandle() 方法

基线
广泛可用

自 2023年3月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

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

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

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

语法

js
getDirectoryHandle(name)
getDirectoryHandle(name, options)

参数

name

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

options 可选

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

create 可选

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

返回值

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

异常

NotAllowedError DOMException

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

TypeError

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

TypeMismatchError DOMException

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

NotFoundError DOMException

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

示例

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

js
const dirName = "directoryToGetName";

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

规范

规范
File System
# api-filesystemdirectoryhandle-getdirectoryhandle

浏览器兼容性

参见