FileSystemManager.saveFile
基础库 1.15.0 开始支持本方法。
保存临时文件到用户目录, 用户目录以 ttfile://user
开头。
语法
FileSystemManager.saveFile(options)
参数说明
options 为 object 类型,属性描述如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
tempFilePath | string | 是 | 文件临时路径 | 1.15.0 | |
filePath | 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 | |
savedFilePath | string | 保存后文件路径 |
回调失败
回调参数为 object 类型,属性如下:
属性 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errNo | number | 错误码 | 1.99.0 |
errMsg | string | "saveFile:fail " + 详细错误信息 | 1.15.0 |
错误码说明:
errNo | errMsg | 说明 | 最低支持版本 |
---|---|---|---|
20000 | saveFile:fail {param_name} is invalid | tempFilePath 参数错误 | 1.99.0 |
20001 | saveFile:fail param should be xxx, but got xxx | 参数校验错误 | 1.99.0 |
21101 | saveFile:fail permission denied, saveFile {filePath_value} | 无操作权限(源文件路径不可读/目标存储路径不可写) | 1.99.0 |
21102 | saveFile:fail no such file or directory, saveFile {tempFilePath_value} | 源文件不存在或目标存储路径的父级目录不存在 | 1.99.0 |
21103 | saveFile:fail user dir saved file size limit exceeded | 超出目录大小限制 | 1.99.0 |
21105 | saveFile:fail permission denied, saveFile {tempFilePath_value} | 源路径不是文件类型 | 1.99.0 |
代码示例
const fileSystemManager = tt.getFileSystemManager();
tt.chooseImage({
success(res) {
// 获取图片, chooseImage 获取的文件在临时文件目录内
const tempFilePaths = res.tempFilePaths;
if (tempFilePaths[0]) {
// 保存到用户目录
saveFile(tempFilePaths[0]);
}
},
});
function saveFile(tempFilePath) {
fileSystemManager.saveFile({
tempFilePath,
success(res) {
console.log(`文件已经从 ${tempFilePath} 移动到 ${savedFilePath}`);
},
fail(res) {
console.log("保存失败", res.errMsg);
},
});
}
Bug & Tip
- Tip:该 API 会把临时文件 移动 到用户, 所以在调用成功后原文件路径将访问失败。
- Tip:从 2.21.0 (包含)开始,每个小游戏 ttfile://user 开头的用户目录储存上限从 50M 提升为 200M, 每个小游戏之间储存相互隔离。单个小游戏储存不区分预览版,正式版,统一分配空间额度。
- Tip:卸载宿主(例如头条, 抖音), 或者使用系统的清理功能将清除用户目录内的文件。
- Tip:通过
tt.downloadFile
下载的文件,tt.chooseImage
选择的文件会保存在以ttfile://temp
开头的临时目录, 临时目录的文件会不定期清理, 如果希望下载的文件永久保留, 则可以通过saveFile
将文件保存到以ttfile://user
开头的用户目录下
点击纠错
该文档是否对你的开发有所帮助?
有帮助
没帮助
该文档是否对你的开发有所帮助?
有帮助
没帮助