抖音开放平台Logo
控制台

FileSystemManager.saveFileSync
收藏
我的收藏

基础库 1.15.0 开始支持本方法,这是一个同步方法。

保存临时文件到用户目录, 用户目录以 ttfile://user 开头。

前提条件
业务背景
使用限制
注意事项
  • 该 API 会把临时文件 移动 到用户目录下, 所以在调用成功后原文件路径将访问失败。
  • 从 2.21.0 (包含)开始,每个小游戏 ttfile://user 开头的用户目录储存上限从 50M 提升为 200M, 每个小游戏之间储存相互隔离。单个小游戏储存不区分预览版,正式版,统一分配空间额度。
  • 卸载宿主(例如头条, 抖音), 或者使用系统的清理功能将清除用户目录内的文件。
  • 通过 tt.downloadFile 下载的文件会保存在以 ttfile://temp 开头的临时目录, 临时目录的文件会不定期清理, 如果希望下载的文件永久保留, 则可以通过 saveFile 将文件保存到以 ttfile://user 开头的用户目录下。
相关教程

语法

FileSystemManager.saveFileSync(tempFilePath, filePath)

参数说明

tempFilePath

类型默认值必填说明最低支持版本
string
要保存的临时文件地址,临时文件地址必须以 ttfile://temp 开头。
1.15.0

filePath

类型默认值必填说明最低支持版本
string
要保存的目标地址,如果没有填写将自动生成一个。
1.15.0

返回值

类型说明最低支持版本
string
保存后的文件地址
1.15.0

错误码

errNoerrMsg说明最低支持版本
20000saveFileSync:fail {param_name} is invalid
tempFilePath 参数错误
1.99.0
20001saveFileSync:fail param should be xxx, but got xxx
参数校验错误
1.99.0
21101saveFileSync:fail permission denied, saveFileSync {filePath_value}
无操作权限(源文件路径不可读/目标存储路径不可写)
1.99.0
21102saveFileSync:fail no such file or directory, saveFileSync {tempFilePath_value}
源文件不存在或目标存储路径的父级目录不存在
1.99.0
21103saveFileSync:fail user dir saved file size limit exceeded
超出目录大小限制
1.99.0
21105saveFileSync:fail permission denied, saveFileSync {tempFilePath_value}
源路径不是文件类型
1.99.0

代码示例

const fileSystemManager = tt.getFileSystemManager();

tt.chooseImage({
  success(res) {
    // 获取图片, chooseImage 获取的文件在临时文件目录内
    const tempFilePaths = res.tempFilePaths;
    if (tempFilePaths[0]) {
      // 保存到用户目录
      const savedFilePath = fileSystemManager.saveFileSync(tempFilePaths[0]);
      console.log(`文件已经从 ${tempFilePaths[0]} 移动到 ${savedFilePath}`);
    }
  },
});