文件系统条目: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 的浏览器中加载。