FileSystemDirectoryHandle: resolve() 方法

基线 2023

新功能

2023 年 3 月起,此功能可在最新的设备和浏览器版本中使用。此功能可能无法在较旧的设备或浏览器中使用。

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

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

FileSystemDirectoryHandle 接口的 resolve() 方法返回一个从父句柄到指定子项的目录名称的 Array,子项的名称作为数组的最后一个元素。

语法

js
resolve(possibleDescendant)

参数

possibleDescendant

要返回其相对路径的FileSystemHandle

返回值

一个Promise,解析为一个包含字符串的Array,如果 possibleDescendant 不是此 FileSystemDirectoryHandle 的后代,则返回 null

异常

不会抛出任何异常。

示例

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

js
async function returnPathDirectories(directoryHandle) {
  // Get a file handle by showing a file picker:
  const [handle] = await self.showOpenFilePicker();
  if (!handle) {
    // User cancelled, or otherwise failed to open a file.
    return;
  }

  // Check if handle exists inside our directory handle
  const relativePaths = await directoryHandle.resolve(handle);

  if (relativePaths === null) {
    // Not inside directory handle
  } else {
    // relativePath is an array of names, giving the relative path
    for (const name of relativePaths) {
      // log each entry
      console.log(name);
    }
  }
}

规范

规范
文件系统标准
# api-filesystemdirectoryhandle-resolve

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅