FileSystemDirectoryHandle: getFileHandle() 方法

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上运行。自 2023 年 3 月以来,它已在各种浏览器中可用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

getFileHandle() 方法是 FileSystemDirectoryHandle 接口的一个方法,它会返回一个 FileSystemFileHandle,用于表示在调用该方法的目录中,具有指定名称的文件。

语法

js
getFileHandle(name)
getFileHandle(name, options)

参数

name

一个字符串,表示您想要获取的文件的 FileSystemHandle.name

options 可选

具有以下属性的对象:

create 可选

一个 Boolean 类型的值。默认为 false。当设置为 true 时,如果文件不存在,则会创建一个具有指定名称的文件并返回。

返回值

一个 Promise,它会解析为一个 FileSystemFileHandle 对象。

异常

NotAllowedError DOMException

如果句柄的 PermissionStatus.state 对于 readwrite 模式(当 create 选项设置为 true 时)或 read 模式(当 create 选项设置为 false 时)不是 'granted',则会抛出此错误。

TypeError

如果指定的名称不是有效的字符串,或者包含会干扰本地文件系统的字符,则会抛出此错误。

TypeMismatchError DOMException

如果命名的条目是一个目录而不是文件,则会抛出此错误。

NotFoundError DOMException

如果当前条目未找到,或者文件不存在且 create 选项设置为 false,则会抛出此错误。

示例

以下示例返回指定名称的文件句柄;如果文件不存在,则会创建该文件。

js
const fileName = "fileToGetName";

// assuming we have a directory handle: 'currentDirHandle'
const fileHandle = await currentDirHandle.getFileHandle(fileName, {
  create: true,
});

规范

规范
文件系统
# api-filesystemdirectoryhandle-getfilehandle

浏览器兼容性

另见