微信小程序文件相关操作(新建文件夹、下载、解压、读取等)

用到的api介绍

  • wx.downloadFile() //下载
  • wx.getFileSystemManager() //获取小程序的文件管理器
  • FileSystemManager.unzip()//解压
  • FileSystemManager.readdir() //读取文件夹
  • FileSystemManager.readFile() //读取文件
  • FileSystemManager.access()//判断文件/目录是否存在
  • FileSystemManager.mkdir() //创建文件夹
index.js
  1. onload中获取FileSystemManger的全局唯一文件管理器

    onLoad: function (options) {  this.FileSystemManager = wx.getFileSystemManager();  //执行下载  this.downloadZipHandler();},
  2. 检查本地文件夹是否存在,不存在执行创建文件夹,然后下载。如果存在直接下载。

    本地用户文件是从 1.7.0 版本开始新增的概念。我们提供了一个用户文件目录给开发者,开发者对这个目录有完全自由的读写权限。通过 wx.env.USER_DATA_PATH 可以获取到这个目录的路径。

    downloadZipHandler() {    let { FileSystemManager } = this;    let that = this;    FileSystemManager.access({      path: `${wx.env.USER_DATA_PATH}/kk`,      success(res) {        console.log('success', res)        DownloadHandler();      },      fail(err) {        console.log('fail', err)        FileSystemManager.mkdir({          dirPath: `${wx.env.USER_DATA_PATH}/kk`,          success(res) {            console.log('success', res)            DownloadHandler();          },          fail(err) {            console.log('fail', err);          }        })      }    })    function DownloadHandler() {      wx.downloadFile({                url: 'https://localhost/book.zip',        filePath: `${wx.env.USER_DATA_PATH}/kk/book.zip`,        success(res) {          console.log(res);          that.setData({            bookZipPath: res.filePath          })        },        fail(err) {          console.log('fail', err)        }      })    }  },
  3. 下载完成后,解压到本地文件夹

    unzipHandler() {    let { FileSystemManager } = this;    let { bookZipPath } = this.data;    FileSystemManager.unzip({      zipFilePath: bookZipPath,      targetPath: `${wx.env.USER_DATA_PATH}/jj`,      success(res) {        console.log(res);      },      fail(err) {        console.log('fail', err)      }    })  },
  4. 读取文件夹里的文件列表,可以得到文件夹下的文件名列表

    readDirHandler() {    let { FileSystemManager } = this;    FileSystemManager.readdir({      dirPath: `${wx.env.USER_DATA_PATH}/jj`,      success(res) {        console.log(res);      },      fail(err) {        console.log('fail', err)      }    })  },
  5. 读取具体文件,可以拿到文件的内容

    readFileHandler() {    let { FileSystemManager } = this;    FileSystemManager.readFile({      filePath: `${wx.env.USER_DATA_PATH}/jj/eric.json`,      encoding: 'utf8',      success(res) {        console.log(res);        let result = JSON.parse(res.data);        console.log(result);      },      fail(err) {        console.log('fail', err)      }    })  },


来源:春哥技术博客,欢迎分享,转载请注明出处。(欢迎加春哥团队客服微信号:taike668)

本文地址:https://www.cgtblog.com/cgymlt/10621.html
上一篇:【微信小程序篇】动态显示数据 | 登录      下一篇:微信小程序如何获取用户信息