# 文件系统
文件系统是小程序/网页应用上提供的一套文件管理的接口集合。其文件存放区域的隔离维度基于应用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
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
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
2
3
4
5
6
7
8
9
# 读写权限
文件类型 | 读 | 写 |
---|---|---|
本地临时文件 | 有 | 无 |
本地用户文件 | 有 | 有 |