当前位置:   article > 正文

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

微信小程序读取本地文件

用到的api介绍

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

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

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

    1. downloadZipHandler() {
    2. let { FileSystemManager } = this;
    3. let that = this;
    4. FileSystemManager.access({
    5. path: `${wx.env.USER_DATA_PATH}/kk`,
    6. success(res) {
    7. console.log('success', res)
    8. DownloadHandler();
    9. },
    10. fail(err) {
    11. console.log('fail', err)
    12. FileSystemManager.mkdir({
    13. dirPath: `${wx.env.USER_DATA_PATH}/kk`,
    14. success(res) {
    15. console.log('success', res)
    16. DownloadHandler();
    17. },
    18. fail(err) {
    19. console.log('fail', err);
    20. }
    21. })
    22. }
    23. })
    24. function DownloadHandler() {
    25. wx.downloadFile({
    26. url: 'https://localhost/book.zip',
    27. filePath: `${wx.env.USER_DATA_PATH}/kk/book.zip`,
    28. success(res) {
    29. console.log(res);
    30. that.setData({
    31. bookZipPath: res.filePath
    32. })
    33. },
    34. fail(err) {
    35. console.log('fail', err)
    36. }
    37. })
    38. }
    39. },
  3. 下载完成后,解压到本地文件夹

    1. unzipHandler() {
    2. let { FileSystemManager } = this;
    3. let { bookZipPath } = this.data;
    4. FileSystemManager.unzip({
    5. zipFilePath: bookZipPath,
    6. targetPath: `${wx.env.USER_DATA_PATH}/jj`,
    7. success(res) {
    8. console.log(res);
    9. },
    10. fail(err) {
    11. console.log('fail', err)
    12. }
    13. })
    14. },
  4. 读取文件夹里的文件列表,可以得到文件夹下的文件名列表

    1. readDirHandler() {
    2. let { FileSystemManager } = this;
    3. FileSystemManager.readdir({
    4. dirPath: `${wx.env.USER_DATA_PATH}/jj`,
    5. success(res) {
    6. console.log(res);
    7. },
    8. fail(err) {
    9. console.log('fail', err)
    10. }
    11. })
    12. },
  5. 读取具体文件,可以拿到文件的内容

    1. readFileHandler() {
    2. let { FileSystemManager } = this;
    3. FileSystemManager.readFile({
    4. filePath: `${wx.env.USER_DATA_PATH}/jj/eric.json`,
    5. encoding: 'utf8',
    6. success(res) {
    7. console.log(res);
    8. let result = JSON.parse(res.data);
    9. console.log(result);
    10. },
    11. fail(err) {
    12. console.log('fail', err)
    13. }
    14. })
    15. },
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/188739
推荐阅读
相关标签
  

闽ICP备14008679号