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

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
showDirectoryPicker
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

参见