FileSystemDirectoryHandle - 提供了文件系统目录的句柄

安全上下文
该功能仅在部分或所有支持的浏览器中的安全上下文(HTTPS)中可用。

FileSystemDirectoryHandleFile System Access API 的接口,提供文件系统目录的句柄。该接口通过 window.showDirectoryPicker() 方法访问。

属性

从其父接口 FileSystemHandle 继承了属性。

方法

从其父接口 FileSystemHandle 继承了方法。

FileSystemDirectoryHandle.entries()

返回一个 Array,表示给定对象自己的可枚举属性 [key, value]

FileSystemDirectoryHandle.getFileHandle()

返回一个 FileSystemFileHandle,表示在方法被调用的目录中指定名称的文件。

FileSystemDirectoryHandle.getDirectoryHandle()

返回一个 FileSystemDirectoryHandle,表示在方法被调用的目录中指定名称的子目录。

FileSystemDirectoryHandle.keys()

返回一个新的数组迭代器,其中包含 FileSystemDirectoryHandle 中每个项目的键。

FileSystemDirectoryHandle.removeEntry()

如果目录句柄包含名为指定名称的文件或目录,则尝试删除条目。

FileSystemDirectoryHandle.resolve()

返回从父句柄到指定子条目的目录名称的 Array,子条目的名称作为最后一个数组项。

FileSystemDirectoryHandle.values()

返回一个新的数组迭代器,其中包含 FileSystemDirectoryHandle 对象中每个索引的值。

实例

以下实例返回具有指定名称的目录句柄,如果该目录不存在,则创建它。

const dirName = 'directoryToGetName';

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

下面的异步函数使用 resolve() 来查找相对于指定目录句柄的所选文件的路径。

async function returnPathDirectories(directoryHandle) {

  // 通过显示文件选择器获取文件句柄:
  const handle = await self.showOpenFilePicker();
  if (!handle) {
    // 用户取消,或无法打开文件。
    return;
  }

  // 检查我们的目录句柄目录中是否存在句柄
  const relativePaths = await directoryHandle.resolve(handle);

  if (relativePath === null) {
    // 不在目录句柄内
  } else {
    // relativePath 是一个名称数组,包含了相对路径
    for (const name of relativePaths) {
      // 记录每个条目
      console.log(name);
    }
  }
}

规范

规范
File System Access #api-filesystemdirectoryhandle

桌面浏览器兼容性

暂无兼容数据

相关链接