@mptool/file
文件 API
提示
请注意,框架会自动帮你添加 USER_DATA_PATH
作为前缀,因此你无需关注它。
工具类
dirname(path)
返回路径的文件夹部分
exists(path)
返回布尔值,代表文件或文件夹是否存在
isDir(path)
返回布尔值,代表路径是否是文件夹
isFile(path)
返回布尔值,代表路径是否是文件
读取类
ls(path)
以数组形式列出目录下所有内容
readFile(path, encoding)
读取指定路径的文件内容并返回。当文件不存在时,返回
undefined
。encoding
为文件的编码格式,可选,当文件为文本文件时默认"utf-8"
,为二进制文件时默认为'buffer'
readJSON(path, encoding)
读取可序列化文件数据并返回解析结果。
当 JSON 文件不存在或解析失败时,返回
undefined
path
: 读取的文件路径,不应含有.json
后缀encoding
: 文件的编码格式,可选,默认utf-8
操作类
mkdir(path, recursive)
创建目录。第二个参数
recursive
可选,代表是否递归父目录。rm(path, type): void
删除指定路径。
第二个参数
type
是可选的,可填入"dir"
或"file"
,填入可提升删除性能writeFile(path, data, encoding)
写入文件
path
: 待写入的文件路径,若文件或其父文件夹不存在会自动创建data
: 待写入的数据,可接受任意可序列化的数据或 Bufferencoding
: 文件编码选项,可选,默认utf-8
(数据) 或binary
(Buffer)
writeJSON(path, data, encoding)
写入可序列化数据为 JSON
path
: 写入文件的路径,若父文件夹不存在会自动创建data
: 写入文件的数据,可接受任意可序列化的数据encoding
: 文件编码选项,默认utf-8
saveFile(tempFilePath, path)
将缓存文件保存到本地文件存储。
tempFilePath
: 缓存文件路径path
: 保存文件路径
saveOnlineFile(onlinePath, localPath): Promise<void>
将在线文件保存到本地指定位置
onlinePath
: 在线文件路径localPath
: 本地文件路径
提示
你无需关注本地保存路径是否已经存在。
unzip(zipFilePath, targetPath): Promise<void>
解压文件
zipFilePath
: 待解压的压缩文件路径targetPath
: 解压到的目录
提示
你无需关注解压目录是否已经存在。
存储 API
存取
put
和 take
可以存入任何数据,但存入的数据只能取出一次,且仅在当次小程序启动中有效。
提示
为了保证性能,以及由于小程序对 Function
进行了特殊处理,我们不会对存入的数据进行深拷贝。
put<T = unknown>(key, data)
: 存数据。take<T = unknown>(key)
: 取数据提示
当数据已经被取过一次后,后续返回
undefined
。
可持久化数据
get
和 set
设置的数据可持久化,且可以设置过期时间。
注意
请注意由于微信小程序底层上的问题,自动清除只发生在下一次读取并发现已经失效时,如果你没有后续读取对应的存储,它们会一直保存 (即使已经过期)。
所以如果你使用了大量临时的键值去存入数据,你可能需要定期通过 check
手动检查并清除过期数据。
set(key, value, expire)
同步设置数据。
key
: 设置的键名value
: 存入的值expire
: 过期时间,可选,默认为'once'
'once'
: 默认,表示仅本次启动有效'keep'
: 表示保持上一次有效时间- 数字: 已毫秒为单位的有效时间
- 0: 永久有效
提示
请注意,如果传入
'keep'
时,存储中不存在同名键值,则该值也不会被写入。setAsync(key, value, expire)
set
的异步版本,在设置大量数据时可考虑使用,返回一个 Promise。get(key)
同步读取数据并返回。
当数据已经过期时,返回
undefined
。key
: 设置的键名
getAsync(key)
get
的异步版本,在读取大量数据避免阻塞线程时可考虑使用,返回一个 Promise。key
: 设置的键名
remove(key)
同步删除数据。
key
: 删除的键名
removeAsync(key)
异步删除数据,返回一个 Promise。
key
: 删除的键名
check()
同步检查并清理过期数据。
checkAsync()
异步检查并清理过期数据,返回一个 Promise。