FileSystemManager.unzip
收藏
我的收藏

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

解压文件。

前提条件
业务背景
使用限制
注意事项
由于开发者只有在 用户目录(ttfile://user) 才有写的权限, 因此 targetPath 必须以 ttfile://user 开头。
支持沙盒
相关教程

语法

FileSystemManager.unzip(options)

参数说明

options 为 object 类型,属性如下:

属性名类型默认值必填说明最低支持版本
zipFilePathstring
源文件路径,只可以是 zip 压缩文件
1.15.0
targetPathstring
目标目录路径, 必须以 `ttfile://user` 开头
1.15.0
successfunction
接口调用成功的回调函数
1.15.0
failfunction
接口调用失败的回调函数
1.15.0
completefunction
接口调用结束的回调函数(调用成功、失败都会执行)
1.15.0

回调成功

object 类型,属性如下:

属性名类型说明最低支持版本
errMsgstring
"unzip:ok"
1.15.0

回调失败

object 类型,属性如下:

属性名类型说明最低支持版本
errMsgstring
"unzip:fail " + 详细错误信息
1.15.0

错误码

errNoerrMsg说明最低支持版本
20000unzip:fail zipFilePath is invalid
zipFilePath 参数错误
1.99.0
20000unzip:fail targetPath is invalid
targetPath 参数错误
1.99.0
21101unzip:fail permission denied, unzip %s
无操作权限(源文件路径不可读/目标路径不可写)
1.99.0
21102unzip:fail operation not permitted, unzip %s
类型不正确(不是文件路径)
1.99.0
21103unzip:fail no such file or directory, unzip %s -> %s
目标/源路径文件不存在
1.99.0
21104unzip:fail user dir saved file size limit exceeded
超出目录大小限制
1.99.0

扫码体验

请使用字节宿主APP扫码

代码示例

开发者工具中预览

const fileSystemManager = tt.getFileSystemManager()

// 下载一个 zip 文件
tt.downloadFile({
  url: "https://sf1-cdn-tos.douyinstatic.com/obj/microapp/frontend/docs/images/test-4423286930445687.zip",
  success(res) {
    console.log("下载 zip 成功", res.tempFilePath)
    // 解压 zip 文件
    unzip(res.tempFilePath)
  },
  fail(res) {
    console.log("下载 zip 失败", res.errMsg)
  },
})

function unzip(zipFilePath) {
  const targetPath = `ttfile://user/abc`

  fileSystemManager.unzip({
    zipFilePath,
    targetPath,
    success(_res) {
      console.log("解压成功")
      const concent = fs.readdirSync(targetPath)
      // 输出 zip 内文件内容
      console.log("压缩包内文件:", concent)
    },
    fail(res) {
      console.log("解压失败", res.errMsg)
    },
  })
}