程序开发之本地文件管理

网友投稿 42 2024-06-30

本地文件

本地文件指的是小程序被用户添加到手机后,会有一块独立的文件存储区域,

本地文件的文件路径均为以下格式:

{{协议名}}://文件路径
        已复制代码

#2.1 本地临时文件

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

临时文件的清理策略为:小程序退出后系统会检查该小程序的临时文件占用,若不超过2GB则不进行清理,超过上限则以文件为维度按照最近使用时间从远到近进行清理。同时也会检查所有小程序的临时文件占用,若超过6GB则以小程序为维度进行清理。

因此,开发者在-临时文件时,可先通过FileSystemManager.access()检查该文件是否存在,减少重复文件-,提升用户体验。

#示例

wx.chooseImage({
  success: function (res) {
    var tempFilePaths = res.tempFilePaths // tempFilePaths 的每一项是一个本地临时文件路径
  }
})
        已复制代码

#2.2 本地缓存文件

本地缓存文件只能通过调用特定接口产生,不能直接写入内容。本地缓存文件产生后,重启之后仍可用。本地缓存文件只能通过FileSystemManager.saveFile()接口将本地临时文件保存获得。

#示例

fs.saveFile({
  tempFilePath: '', // 传入一个本地临时文件路径
  success(res) {
    console.log(res.savedFilePath) // res.savedFilePath 为一个本地缓存文件路径
  }
})
        已复制代码

注意

本地缓存文件是最初的设计,1.7.0 版本开始,提供了功能更完整的本地用户文件,可以完全覆盖本地缓存文件的功能,如果不需要兼容低于 1.7.0 版本,可以不使用本地缓存文件。

#2.3 本地用户文件

小程序提供了一个用户文件目录给开发者,开发者对这个目录有完全自由的读写权限。通过ft.env.USER_DATA_PATH可以获取到这个目录的路径。

#示例

// 在本地用户文件目录下创建一个文件 hello.txt,写入内容 "hello, world"
const fs = ft.getFileSystemManager()
fs.writeFileSync(`${ft.env.USER_DATA_PATH}/hello.txt`, 'hello, world', 'utf8')
        已复制代码

#2.4 读写权限

接口、组件
代码包文件
本地临时文件
本地缓存文件
本地用户文件

#2.5 清理策略

  • 本地临时文件只保证在小程序当前生命周期内,一旦小程序被关闭就可能被清理,即下次冷启动不保证可用。

  • 本地缓存文件和本地用户文件的清理时机跟代码包一样,只有在代码包被清理的时会被清理。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序文件系统-代码包文件
下一篇:小程序分包加载如何使用分包
相关文章

 发表评论

暂时没有评论,来抢沙发吧~