文件系统

文件系统是小程序提供的一套以小程序和用户维度隔离的存储以及一套响应的管理接口。通过wx.getFilesSystemManager()可以获取到全局唯一的文件管理器,所有文件管理操作通过FileSystemManager来调用。

var fs = wx.getFileSystemManager();
复制代码

文件主要分为两大类:

代码包文件:代码包文件指的是在项目目录中添加的文件。

本地文件:通过调用本地产生,或通过网络下载下来,存储到本地的文件。

其中本地文件有分成三种:

① 本地临时文件:临时产生,随时会被回收的文件,不限制存储大小。

② 本地缓存文件:小程序通过接口把本地临时文件缓存后产生的文件,不能自定义目录和文件名。除非用户主动删除小程序,否则不会被删除,与本地用户文件共计最多可存储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')
复制代码

读写权限

接口、组件 读 写

代码包文件 有 无

本地临时文件 有 无

本地缓存文件 有 无

本地用户文件 有 有

本节内容就为大家介绍到这里,下节将为大家介绍小游戏调试的相关内容。

微信小游戏开发(11)-文件系统相关推荐

  1. 白鹭引擎拉伸高度_答疑汇总|白鹭引擎架构师开源中国社区分享微信小游戏开发技巧...

    原标题:答疑汇总|白鹭引擎架构师开源中国社区分享微信小游戏开发技巧 1月31日-2月6日,开源中国社区邀请白鹭引擎首席架构师王泽以"微信小游戏开发技巧分享"为主题,为广大开发者带来 ...

  2. 微信小游戏开发实战教程11-使用本地缓存

    这是微信小游戏开发实战系列的第11篇. 本节主要内容:使用本地缓存来记录玩家的设置以及各种类型数据的本地缓存和读取操作. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏" ...

  3. 动态加载子节点_微信小游戏开发之场景切换和常驻节点传递数据

    主题 场景切换 场景间数据传递方式 小游戏全局背景音效 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有些知识点的 ...

  4. 微信小游戏开发教程-游戏实现3

    微信小游戏开发教程-游戏实现3 对象池 由于游戏过程中会创建很多临时对象,这些对象很快又不再使用,垃圾回收器也能帮我们主动回收这部分垃圾,但是回收时间不可控制,同时增大了创建对象的开销,所以我们使用对 ...

  5. 微信小游戏开发教程-游戏实现2

    微信小游戏开发教程-游戏实现2 绘制地面 类似于绘制背景,读者自行完成代码.src/runtime/land.js 简易View系统 坐标布局对于复杂的页面来说维护相当困难,因此这里我们引入布局的概念 ...

  6. 微信小游戏开发教程-游戏实现1

    微信小游戏开发教程-游戏实现1 概述 微信开发者工具官方提供一个飞机大战的游戏Demo,这里我们不再使用这个demo,我们以FlappyBird为例,为了让读者更加容易理解. 源码 https://g ...

  7. 微信小游戏开发教程-2D游戏原理讲解

    微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...

  8. 微信小游戏开发教程-新建项目

    微信小游戏开发教程-新建项目 1. 新建小游戏项目 我们这回使用空项目,不要勾选使用模板创建. 2. 添加小游戏必要文件 项目创建好以后我们发现缺少一些必要的文件,我们手动添加即可: game.jso ...

  9. 微信小游戏开发零基础教程(一)-CocosCreator

    微信小游戏零基础教程(一)-CocosCreator 最终效果预览 准备工作 创建工程 测试第一个场景 最终效果预览 本教程最后制作的游戏效果: 准备工作 下载 微信开发者工具 最新版->下载地 ...

  10. 微信小游戏开发实战教程13-随机生成形状功能的实现

    微信小游戏开发实战系列的第13篇. 本节内容包括:通过使用列表来实现可以设置权重的随机功能,以及游戏中的随机生成形状功能的具体实现. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游 ...

最新文章

  1. sql-case when 条件1 then 取值1 when 条件2 then 取值2 else 取值3 end
  2. 中国自主研制出的速度最高的巨型计算机是,2018年,中国自主研制出的速度最高的巨型计算机是。...
  3. 共享服务器设置权限修改,共享服务器权限设置
  4. Java入门系列-11-类和对象
  5. C++实现N选R的实现算法(附完整源码)
  6. Windows坐标系统
  7. ISCC2014-reverse
  8. VUE 2 无法监听数组和对象的某些变化
  9. Nginx跨域解决配置示例
  10. java list循环_【知识】Java中循环打印出LIST的各属性的值
  11. 文字时钟罗盘动态html代码_抖音时钟原生JS文字钟源码下载
  12. HashMap底层数据结构详解
  13. osgEarth世界坐标和经纬度坐标相互转换
  14. 计算机应用技术和it有什么区别,IT是程序员吗?IT究竟是什么意思?
  15. 逻辑推理题:海盗分金币
  16. AMBER免费申请流程
  17. 武汉有哪些大学 计算机专业比较强,武汉有哪些计算机好的大学排名
  18. JAVA 开发命名规范——阿里巴巴Java开发手册
  19. vue中的方法 methods 定义时不要使用箭头函数
  20. 支付宝基金转招商证券转场内基金条件

热门文章

  1. Windows10下安装MySQL8.0
  2. js监听滚动条滚动事件
  3. STM32F1移植UCOSII
  4. JDK问题--linux下java unrecognized class file version错误的解决
  5. [转贴]壮观啊!实拍中国最美公路
  6. 将15位的身份证号码升级到18位的关键是校验码
  7. 机器学习基础:期望最大化算法(Machine Learning Fundamentals: EM Algorithm)
  8. 二分图匹配----基于匈牙利算法和KM算法
  9. bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
  10. Netty NioEventLoop 启动过程源码分析