FileSystemEntry: getParent() 方法

FileSystemEntry 接口的 getParent() 方法用于获取一个 FileSystemDirectoryEntry

语法

js
getParent(successCallback, errorCallback)
getParent(successCallback)

参数

successCallback

当父目录项已检索到时会调用的函数。该回调接收一个输入参数:一个代表父目录的 FileSystemDirectoryEntry 对象。根目录的父目录被认为是根目录本身,因此请务必注意这一点。

errorCallback 可选

一个可选的回调,在发生错误时执行。它有一个参数:一个 DOMException,描述了发生的问题。

返回值

无(undefined)。

异常

DOMException.INVALID_STATE_ERR

操作失败,因为文件系统的状态不允许。例如,如果文件系统的缓存状态与文件系统的实际状态不同,可能会发生这种情况。

DOMException.NOT_FOUND_ERR

找不到指定的路径。

DOMException.SECURITY_ERR

安全限制阻止了获取父目录的信息。

示例

此示例将变量 fileEntry 指定的文件重命名为 "newname.html"

js
fileEntry.getParent(
  (parent) => {
    fileEntry.moveTo(parent, "newname.html", (updatedEntry) => {
      console.log(`File ${fileEntry.name} renamed to newname.html.`);
    });
  },
  (error) => {
    console.error(
      `An error occurred: Unable to rename ${fileEntry.name} to newname.html.`,
    );
  },
);

这是通过首先获取一个代表文件当前所在目录的 FileSystemDirectoryEntry 对象来完成的。然后使用 moveTo() 在该目录中重命名文件。

使用 Promise

目前,还没有此方法的基于 Promise 的版本。但是,您可以创建一个简单的辅助函数来适配它,如下所示:

js
function getParentPromise(entry) {
  return new Promise((resolve, reject) => {
    entry.getParent(resolve, reject);
  });
}

在文件和目录条目 API 的其他地方也可以采用类似的方法。

规范

规范
File and Directory Entries API
# dom-filesystementry-getparent

浏览器兼容性

另见