• 微信小程序之文件系统初探


    微信小程序之文件系统初探

    1、文件下载

       //下载文件
      go_download: function() {
        var content = this;
        var baseUrl = "http://rwh.blob.core.chinacloudapi.cn";
        var fileName = "1-e2b214af930149ee80c8142d067148a7.exam";
        var url = baseUrl + "/data/ExamBuilder2.0/20190320" + "/" + fileName;
    
        console.log("dowload url:" + url);
    
        //用户缓存目录
        var userLocalPath = wx.env.USER_DATA_PATH;
        var localPath = "wxfile://";
        var path = userLocalPath + "/" + fileName
        var localPath = localPath + "/" + fileName
        var authorization = "Basic ZThlYWJmNWMwN2I0NGI0YmEzOGJmZWMyMTJkM2U1ZDU=";
        var apptoken = "Authorization"
    
        const downloadTask = wx.downloadFile({
    
          // 待下载的云资源
          url: url,
    
          //下载成功后的回调函数
          success(res) {
            console.log("dowload res.errMsg:" + res.errMsg);
            console.log("dowload res.statusCode:" + res.statusCode);
            console.log("dowload res.tempFilePath:" + res.tempFilePath);
    
            if (res.statusCode === 200) {
              wx.showToast({
                title: '下载成功!'
              })
            }
          },
    
          //失败回调函数
          fai: function(res) {
            console.log("downloadFile fai:" + res.errMsg)
          },
    
          //完成回调函数
          complete: function() {
            console.log("downloadFile complete")
            content.getReaddir(targPath)
          }
        })
    
        downloadTask.onProgressUpdate((res) => {
          console.log('下载进度', res.progress)
          console.log('已经下载的数据长度', res.totalBytesWritten)
          console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
        })
    
        // downloadTask.abort() // 取消下载任务
    
      }
    

    2、持久化文件到本地

     //下载成功的文件目前存在temp文件夹下,它属于临时文件
     //如果想要将其持久化,需要使用wx.saveFile()将其保存至store文件夹下,
     //在使用这个函数时,temp文件夹下的临时文件会被删除。
    wx.saveFile({
       tempFilePath: res.tempFilePath,
          success: function(res) {
          console.log(res);
          var savedFilePath = res.savedFilePath;
          console.log('文件已下载到' + savedFilePath);
        }
     })
    

    3、解压压缩文件

      //解压文件
      unzipFile: function(path, targPath) {
        var content = this;
        console.log("unzip path:" + path)
        console.log("unzip targPath:" + targPath)
        wx.getFileSystemManager().unzip({
          //文件路径
          zipFilePath: path,
    
          //目标文件夹
          targetPath: targPath,
    
          //成功回调函数
          success: function(res) {
            console.log(res.errMsg)
          },
    
          //失败回调函数
          fai: function(res) {
            console.log("unzip fai:" + res.errMsg)
          },
    
          //完成回调函数
          complete: function() {
            console.log("unzip complete")
            content.getReaddir(targPath)
          }
        });
      }
    

    3、读取文件到内存

    //读取文件
      readFile: function(path) {
        console.log("readFile start path:" + path)
        var userLocalPath = wx.env.USER_DATA_PATH;
        wx.getFileSystemManager().readFile({
          //文件路径
          filePath: path,
    
          //成功回调函数
          success: function(res) {
            console.log("unzip success res:" + res.errMsg)
            console.log(res)
          },
    
          //失败回调函数
          fai: function(res) {
            console.log("unzip fai:" + res.errMsg)
          },
    
          //完成回调函数
          complete: function() {
            console.log("unzip complete")
          }
        });
      }
    

    4、查看目标文件夹的文件列表

     // 查看下载的文件列表
      getReaddir: function(path) {
        console.log("getReaddir start")
        wx.getFileSystemManager().readdir({
          dirPath: path,
    
          //成功回调函数
          success: function(res) {
            console.log("getReaddir success res:" + res.errMsg)
            console.log(res)
          },
    
          //失败回调函数
          fai: function(res) {
            console.log("getReaddir fai:" + res.errMsg)
          },
    
          //完成回调函数
          complete: function() {
            console.log("getReaddir complete")
          }
        })
      }
    

    5、查看已经缓存的文件列表

     // 查看下载的文件列表
      getUserSavedFileList: function() {
        console.log("getUserSavedFileList start")
        wx.getFileSystemManager().getSavedFileList({
          //成功回调函数
          success: function(res) {
            console.log("getUserSavedFileList success res:" + res)
            console.log(res)
          },
    
          //失败回调函数
          fai: function(res) {
            console.log("getUserSavedFileList fai:" + res.errMsg)
          },
    
          //完成回调函数
          complete: function() {
            console.log("getUserSavedFileList complete")
          }
        })
      }
    
  • 相关阅读:
    Flutter页面-基础Widget
    Data 方法、异常与类
    kafka手动设置offset
    centos 安装ftp服务BUG
    定时任务
    Java垃圾收集算法
    ByteBuffer数据结构
    HelloWorldDynamic
    HelloWorld
    sql技巧(增册改查)
  • 原文地址:https://www.cnblogs.com/hejing-michael/p/wei-xin-xiao-cheng-xu-zhi-wen-jian-xi-tong-chu-tan.html
Copyright © 2020-2023  润新知