文件系统条目:moveTo() 方法

已弃用: 此功能不再推荐使用。虽然某些浏览器可能仍支持它,但它可能已从相关 Web 标准中移除,可能正在被弃用,或者可能仅出于兼容性目的而保留。避免使用它,并尽可能更新现有代码;请参阅本页面底部的 兼容性表 来指导您的决定。请注意,此功能可能随时停止工作。

非标准: 此功能是非标准的,并且不在标准轨道上。不要在面向 Web 的生产网站上使用它:它不会适用于所有用户。实施之间可能存在很大的不兼容性,并且行为在将来可能会发生变化。

FileSystemEntry 接口的方法 moveTo() 将条目指定的移动到文件系统上的新位置,或者如果目标目录与源目录相同,则重命名文件。

您可以执行的操作存在一些典型的限制

  • 目录不能移动到自身内部。
  • 条目不能移动到其父目录,除非您指定一个新名称。指定一个新名称可以让 moveTo() 充当重命名操作。
  • 移动目录时,移动始终是递归的;您不能省略子文件夹。
  • 您不能移动文件以使其替换现有目录,并且您不能移动目录以使其替换现有文件。但是,文件可以替换文件,目录可以替换目录。
  • 您只能覆盖空目录。

语法

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

参数

newParent

一个 FileSystemDirectoryEntry 对象,指定移动操作的目标目录。

newName 可选

如果提供此参数,则条目将被重命名,使其新的文件或目录名称为该字符串。

successCallback 可选

移动操作成功完成时调用的函数。接收单个输入参数:一个 FileSystemEntry 基于的对象,提供移动项的新详细信息。

errorCallback 可选

移动项时发生错误时执行的可选回调。有一个参数:一个 FileError 描述了哪里出了问题。

返回值

无 (undefined).

异常

FileError.INVALID_MODIFICATION_ERR

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

FileError.QUOTA_EXCEEDED_ERR

操作超过了用户的存储配额,或者没有足够的存储空间来完成操作。

示例

此示例演示了如何将一个临时的日志文件移动到一个更永久的“日志”目录中,当它的大小超过 1 MB 时。

js
workingDirectory.getFile(
  "tmp/log.txt",
  {},
  (fileEntry) => {
    fileEntry.getMetadata((metadata) => {
      if (metadata.size > 1048576) {
        workingDirectory.getDirectory(
          "log",
          {},
          (dirEntry) => {
            fileEntry.moveTo(dirEntry);
          },
          handleError,
        );
      }
    });
  },
  handleError,
);

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅