FileSystemEntry:copyTo() 方法

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

FileSystemEntry 接口的 copyTo() 方法将入口指定的 文件 复制到文件系统中的新位置。

对您可以执行的操作有一些典型限制。

  • 目录不能复制到其自身中。
  • 条目不能复制到其父目录中,除非您指定一个新名称。
  • 复制目录时,复制始终是递归的;您不能省略子文件夹。

语法

js
copyTo(newParent)
copyTo(newParent, newName)
copyTo(newParent, newName, successCallback)
copyTo(newParent, newName, successCallback, errorCallback)

参数

newParent

一个指定复制操作目标目录的 FileSystemDirectoryEntry 对象。

newName 可选

如果提供了此参数,则复制操作将获得此字符串作为其新的文件或目录名称。

successCallback 可选

一个在复制操作成功完成时调用的函数。接收一个输入参数:一个 FileSystemEntry 为基础的对象,提供复制项目的详细新信息。

errorCallback 可选

在复制项目时发生错误时执行的可选回调。有一个参数:一个 DOMException 描述了出了什么问题。

返回值

无(undefined)。

异常

DOMException.INVALID_MODIFICATION_ERR

请求的操作涉及一个不可能的更改,例如将目录移动到其自身或其子目录之一中,或者在不重命名的情况下在同一目录内复制项目。

DOMException.QUOTA_EXCEEDED_ERR

操作超出了用户的存储配额,或剩余存储空间不足以完成该操作。

示例

此示例显示了如何将临时日志文件移动到更永久的“log”目录中。

js
workingDirectory.getFile(
  "tmp/log.txt",
  {},
  (fileEntry) => {
    workingDirectory.getDirectory(
      "log",
      {},
      (dirEntry) => {
        fileEntry.copyTo(dirEntry);
      },
      handleError,
    );
  },
  handleError,
);

浏览器兼容性

另见