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

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")
      }
    })
  }
posted on 2019-05-15 20:23  一翼诚  阅读(558)  评论(0编辑  收藏  举报