Window:showDirectoryPicker() 方法

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格

Window 接口的 showDirectoryPicker() 方法用于显示一个目录选择器,以允许用户选择一个目录。

语法

js
showDirectoryPicker()

参数

options 可选

选项对象,包含以下属性:

id 可选

通过指定 ID,浏览器可以为不同的 ID 记住不同的目录。如果相同的 ID 用于另一个选择器,则该选择器将在同一目录中打开。

mode 可选

字符串,默认为 "read",用于只读访问,或 "readwrite" 用于读写访问。

startIn 可选

一个 FileSystemHandle 对象或者代表某个众所周知的目录的字符串(如:"desktop""documents""downloads""music""pictures""videos"),用于指定选择器的起始目录。

返回值

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

异常

AbortError DOMException

当用户未经选择直接关闭了目录选择器,或用户代理认为选择的目录过于敏感或者危险,或指定 mode 中选择的目录的 PermissionStatus.state 不是 "granted",则抛出此异常。

SecurityError DOMException

如果调用被同源策略阻止,或者不是通过用户交互(例如按下按钮)调用,则抛出该异常。

安全性

瞬态用户激活是必需的。用户必须与页面或 UI 元素进行交互才能使该特性正常运行。

示例

以下异步函数可以显示一个目录选择器并在用户选择后返回一个 FileSystemDirectoryHandle 对象。

js
async function getDir() {
  const dirHandle = await window.showDirectoryPicker();

  // 操作 dirHandle 的后续代码
}

规范

Specification
File System Access
# api-showdirectorypicker

浏览器兼容性

BCD tables only load in the browser

参见