# 文件系统

文件系统是小程序/网页应用上提供的一套文件管理的接口集合。其文件存放区域的隔离维度基于应用appid以及用户userid。通过 bz.getFileSystemManager() 可以获取到全局唯一的文件系统管理器,所有文件系统的管理操作通过 FileSystemManager 来调用。

# 支持说明

应用能力 Android iOS PC
小程序 3.9.0 3.9.0 3.10.0
网页应用 待开发 待开发 待开发
var fs = bz.getFileSystemManager()
1

文件主要分为两种:

  • 临时文件(以bzfile://temp开头):临时产生,小程序重启会被清空的文件。
  • 用户文件(以bzfile://user开头):小程序通过接口把本地临时文件保存后产生的文件,每个小程序最多可存储 200MB。

# 本地文件

本地文件指的是小程序被用户添加到手机后,会有一块独立的文件存储区域,以userId + appId维度隔离。即同一台手机,每个用户不能访问到其他登录用户的文件,同一个用户不同 appId 之间的文件也不能互相访问。

# 本地临时文件

本地临时文件只能通过调用特定接口产生,不能直接写入内容。本地临时文件产生后,仅在当前生命周期内保证有效,重启之后不一定可用。如果需要保证在下次启动时无需下载,可通过 FileSystemManager.saveFile()FileSystemManager.copyFile() 接口把本地临时文件转化成本地用户文件。

临时文件的清理策略为:小程序重启后,临时文件会被清理。

# 临时文件产生示例

//Demo1
bz.chooseImage({
  success (res) {
      const tempFilePaths = res.tempFilePaths // tempFilePaths 的每一项是一个本地临时文件路径
  },
  fail (res) {}
});

//Demo2
bz.downloadFile({
    "url": "https://xxx.png",
    success(res) {
      const tempFilePath = res.tempFilePath // tempFilePath 是一个本地临时文件路径
    },
    fail(res) {}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 本地用户文件

本地用户文件目录用以保存开发者的常规文件数据,开发者对这个目录有完全自由的读写权限。

const fileSystemManager = bz.getFileSystemManager();
const filePath = `bzfile://user/example.txt`;//本地用户文件
fileSystemManager.writeFile({
  filePath,
  encoding: "utf8",
  data: "example content",
  success(_res) {
    const data = fileSystemManager.readFileSync(filePath);
    console.log("写入的内容为:", data);
  },
  fail(res) {}
});
1
2
3
4
5
6
7
8
9
10
11
12

本地用户文件不会被系统清理,用户可以手动清理。

const fileSystemManager = bz.getFileSystemManager();
const filePath = `bzfile://user/example.txt`;//本地用户文件
fileSystemManager.unlink({
  filePath: filePath,
  success(_res) {
    console.log("unlink success");
  },
  fail(res) {}
});
1
2
3
4
5
6
7
8
9

# 读写权限

文件类型
本地临时文件
本地用户文件
最后更新于 : 5/18/2023, 3:09:13 PM