微信小程序—文件系统
文件系统
文件系统是小程序提供的一套以小程序和用户维度隔离的存储以及一套响应的管理接口。通过wx.getFilesSystemManager()可以获取到全局唯一的文件管理器,所有文件管理操作通过FileSystemManager来调用。
var fs = wx.getFileSystemManager();
文件主要分为两大类:
l 代码包文件:代码包文件指的是在项目目录中添加的文件。
l 本地文件:通过调用本地产生,或通过网络下载下来,存储到本地的文件。
其中本地文件有分成三种:
① 本地临时文件:临时产生,随时会被回收的文件,不限制存储大小。
② 本地缓存文件:小程序通过接口把本地临时文件缓存后产生的文件,不能自定义目录和文件名。除非用户主动删除小程序,否则不会被删除,与本地用户文件共计最多可存储50M文件。
③ 本地用户文件:小程序通过接口把本地临时文件缓存后产生的文件。允许自定义目录和文件名,除非用户主动删除小程序,否则不会被删除,与本地缓存文件共计最多可存储50M文件。
代码包分类
由于代码包文件的大小限制,代码包文件适用于放置首次加载时需要的文件,对于内容较大或者需要动态替换的文件,不推荐用添加到代码包中,推荐在小游戏启动之后再用下载接口下载到本地。
访问代码包文件
代码包文件的访问方式是从项目根目录开始写文件路径,不支持相对路径的写法。
修改代码包文件
代码包内的文件无法在运行后动态修改或删除,修改代码包文件需要重新发布版本。
本地文件
本地文件指的是小程序被用户添加到手机后,会有一块独立的文件存储区域,以用户维度隔离。即用一部手机,每个微信用户不能访问其他登录用户的文件,用一个用户不同APPID之间的文件也不能相互访问。
本地文件的文件路径均为以下格式:
{{协议名}}://文件路径
其中,协议名在安卓和IOS客户端为”wxfile”,在开发者工具上为”http”,开发者无需关心这个差异,也不应在代码中去硬编码完整文件路径。
本地临时文件
本地临时文件只能通过调用特定的接口产生,不能直接写入内容。本地临时文件产生后,仅在当前生命周期内有效,重启之后即不可用。因此,不可以把本地临时文件的路径存储起来下次使用。如果需要下次再使用,可通过FileSystemManager.saveFile()或FileSystemManager.copyFile()接口把本地临时文件转换成本地缓存文件或本地用户文件。
示例:

wx.chooseImage({
success: function(res){
var tempFilePath = res.tempFilePaths;
console.log(tempFilePath);
}
})

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

fs.saveFile({
tempFilePath: '',
success(res){
console.log(res.saveFilePath);
}
})

注意:本地缓存文件是最初的设计,1.7.0版本开始,提供了功能更完整的本地用户文件,可以完全覆盖本地缓存文件的功能,如果不需要兼容低于1.7.0版本,可以不使用本地缓存文件。
本地用户文件
本地用户文件是从1.7.0版本开始新增的概念。微信提供了一个用户文件目录给开发者,开发者对这个目录有完全自由的读写权限。通过wx.env.USER_DATA_PATH可以获取到这个目录的路径。
const fs = wx.getFileSystemManager()
fs.writeFileSync(`${wx.env.USER_DATA_PATH}/hello.txt`, 'hello, world', 'utf8')
读写权限
|
接口、组件 |
读 |
写 |
|
代码包文件 |
有 |
无 |
|
本地临时文件 |
有 |
无 |
|
本地缓存文件 |
有 |
无 |
|
本地用户文件 |
有 |
有 |
本节内容就为大家介绍到这里,下节将为大家介绍小游戏调试的相关内容。(转载)
微信小程序—文件系统的更多相关文章
- 微信小程序之文件系统初探
微信小程序之文件系统初探 1.文件下载 //下载文件 go_download: function() { var content = this; var baseUrl = "http:// ...
- 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...
- 微信小程序教程(第三篇)
小程序的架构及实现机制,信道服务及会话管理 小程序架构及实现机制 小程序并不是 H5 应用,而是更偏向于传统的 CS 架构,它是基于数据驱动的模式,一切皆组件(视图组件).所以建议在开发小程序时不要以 ...
- 玩玩小程序:使用 WebApi 交互打造原生的微信小程序 - 图灵小书架
使用 WebApi 交互打造原生的微信小程序 - 图灵小书架 目录 介绍 源码地址 扫一扫体验 代码分析 其它相关信息(互联网搜集) 介绍 定时抓取图灵社区官网的首页.最热.推荐和最新等栏目的相关图书 ...
- 微信小程序原生开发简介
简介: 总结: 1. 逻辑层使用js引擎,视图层使用webview渲染 2. 微信小程序已经支持了绝大部分的 ES6 API 3. 可以自动补全css的兼容语法 文档:https://develope ...
- 微信小程序开发(五)开发框架MINA
微信团队为小程序提供的框架命名为MINA应用框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方 ...
- 微信小程序“信用卡还款”项目实践
小程序概述 11月3日晚,微信团队对外宣布,微信小程序开放公测.开发者可登陆微信公众平台申请,开发完成后可以提交审核,公测期间暂不能发布. 我们前一段时间也进行了小程序开发,现在来对之前的开发体验做一 ...
- 微信小程序开发教程(五)开发框架:MINA
微信团队为小程序提供的框架命名为MINA应用框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方 ...
- 【微信小程序】开发实战 之 「开发框架MINA构成」
小程序开发框架的目标是通过尽可能简单.高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务. 微信团队为小程序提供的框架命名为MINA.MINA框架通过封装微信客户端提供的文件系统.网络通信 ...
随机推荐
- SQL Server统计数据库中表个数、视图个数、存储过程个数
表个数 SELECT count(*) FROM sys.objects WHERE type='U' 视图个数 SELECT count(*) FROM sys.objects WHERE type ...
- Docker 导出 & 导入
Docker 容器因为它的快速部署被深受喜爱.本文记录 Docker 容器的导出与导入,分别用到 Docker 的 export 和 import 命令. 1.查看正在运行的容器: [root@loc ...
- 彻底搞懂字符集编码:ASCII,Unicode 和 UTF-8
一.ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte).也就是说,一个 ...
- swift 学习- 10 -- 类和结构体
// '类和结构体' 是人们构建代码所使用的一种通用且灵活的构造体, 我们可以使用完全相同的语法规则来为 '类和结构体' 定义属性 (变量 和 常量) 和添加方法, 从而扩展 类和结构体 的功能 // ...
- centos7_ linux : Nginx安装手册
一: nginx安装环境 1: oracle vm虚拟机+Centos7系统的yum环境的安装 配置本地yum库(用root用户操作) 创建挂载目录 mkdir /mnt/cdrom 查看挂载目录 l ...
- 如何编辑PDF文件,怎么使用PDF裁剪页面工具
在编辑PDF文件的时候,往往会有很多的小技巧可以使用,在编辑PDF文件的时候,怎么对文件的页面进行裁剪呢,不会的话,看看下面的文章吧,小编已经为大家整理好了哦. 1.打开运行PDF编辑器,在编辑器中打 ...
- 工业以太网EtherNet/IP协议安全分析整理
1. EtherNet/IP : 设备可以用户数据报协议(UDP)的隐式报文传送基于IO的资料 ,用户传输控制协议(TCP)显示报文上传和下参数,设定值,程式 ,用户主站的轮询 从站周期性的更 ...
- poj2942 求v-DCC,二分图判奇环,补图
/* 给定一张无向图,求有多少点不被任何奇环包含 推论1:如果两个点属于两个不同的v-DCC,则他们不可能在同一个奇环内 推论2:某个v-DCC中有奇环,则这个v-DCC中所有点必定被属于某个奇环 只 ...
- MySQL5.7版本及以上,改密码sql语句;grant创建用户已经密码
mysql> update mysql.user set authentication_string = password('*****') where user = 'root'; gran ...
- Windows批处理命令用法
阅读下面文字需要一定的dos基础概念,象:盘符.文件.目录(文件夹).子目录.根目录.当前目录 每个命令的完整说明请加 /? 参数参考微软的帮助文档可以看到,在 /? 帮助里,"命令扩展名& ...