Window: showDirectoryPicker() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

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

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

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

语法

js
showDirectoryPicker()
showDirectoryPicker(options)

参数

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();

  // run code for dirHandle
}

规范

规范
文件系统访问
# api-showdirectorypicker

浏览器兼容性

另见