FileSystemManager.rename
基础库 1.15.0 开始支持本方法,低版本需做兼容处理。
重命名文件,可以把文件从 oldPath 移动到 newPath。
语法
FileSystemManager.rename(options)
参数说明
options
options 为 object 类型,属性描述如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
oldPath | string | 是 | 源文件路径,可以是普通文件或目录,必须以 ttfile://user 开头 | 1.15.0 | |
newPath | string | 是 | 新文件路径,必须以 ttfile://user 开头 | 1.15.0 | |
success | Function | 否 | 接口调用成功的回调函数 | 1.15.0 | |
fail | Function | 否 | 接口调用失败的回调函数 | 1.15.0 | |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 1.15.0 |
回调成功
回调参数为 object 类型,属性如下:
属性 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | 1.15.0 |
回调失败
回调参数为 object 类型,属性如下:
属性 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "rename:fail " + 详细错误信息 | 1.15.0 |
errMsg 说明 | 说明 |
---|---|
fail permission denied, rename ${oldPath} -> ${newPath} | 指定源文件或目标文件没有写权限 |
fail no such file or directory, rename ${oldPath} -> ${newPath} | 源文件不存在,或目标文件路径的上层目录不存在 |
扫码体验
请使用字节宿主APP扫码
代码示例
将所有保存的文件移除拓展标识
const fileSystemManager = tt.getFileSystemManager();
fileSystemManager.getSavedFileList({
success(res) {
res.fileList.forEach(removeExt);
},
fail(res) {
console.log("获取失败", res.errMsg);
},
});
/**
* @param {*} fileItem
* @param {string} fileItem.filePath
* @param {number} fileItem.createTime
* @param {number} fileItem.size
*/
function removeExt(fileItem) {
console.log(`移除 ${fileItem.filePath} 的 ext`);
const newPath = fileItem.filePath.replace(/(\..+)?$/, "");
fileSystemManager.rename({
oldPath: fileItem.filePath,
newPath,
success(_res) {
console.log("重命名成功");
},
fail(res) {
console.log("重命名失败", res.errMsg);
},
});
}
Bug & Tip
- Tip: 因为开发者只有在
ttfile://user
目录下才有写的权限, 因此rename
只能在用户目录下进行。
点击纠错
评价此篇文档