微信小程序—文件系统

文件系统

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

var fs = wx.getFileSystemManager();缓存

文件主要分为两大类:微信

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

l 本地文件:经过调用本地产生,或经过网络下载下来,存储到本地的文件。工具

其中本地文件有分红三种:编码

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

② 本地缓存文件:小程序经过接口把本地临时文件缓存后产生的文件,不能自定义目录和文件名。除非用户主动删除小程序,不然不会被删除,与本地用户文件共计最多可存储50M文件。设计

③ 本地用户文件:小程序经过接口把本地临时文件缓存后产生的文件。容许自定义目录和文件名,除非用户主动删除小程序,不然不会被删除,与本地缓存文件共计最多可存储50M文件。调试

代码包分类

因为代码包文件的大小限制,代码包文件适用于放置首次加载时须要的文件,对于内容较大或者须要动态替换的文件,不推荐用添加到代码包中,推荐在小游戏启动以后再用下载接口下载到本地。code

访问代码包文件

代码包文件的访问方式是从项目根目录开始写文件路径,不支持相对路径的写法。

修改代码包文件

代码包内的文件没法在运行后动态修改或删除,修改代码包文件须要从新发布版本。

本地文件

本地文件指的是小程序被用户添加到手机后,会有一块独立的文件存储区域,以用户维度隔离。即用一部手机,每一个微信用户不能访问其余登陆用户的文件,用一个用户不一样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')

读写权限

接口、组件

代码包文件

本地临时文件

本地缓存文件

本地用户文件

本节内容就为你们介绍到这里,下节将为你们介绍小游戏调试的相关内容。(转载)

相关文章
相关标签/搜索