收藏
回答

小程序保存用户本地文件问题

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug Android EMUI 9.0.0 HUAWEI Mate 20 X 6.7.3

- 调用appendFileSync()函数保存“用户本地文件”时,在Windows端的开发工具中是可以正常保存的。然而在手机上无法保存(调用读取readFileSync()函数读取不到数据),同时查看微信文件保存的文件发现是0b大小。?


- 开发工具中能够读取保存的数据,在手机端就无法读取到文件中的数据


-结果对比:




图一  开发工具中的效果




-以下是Demo代码:

.js文件


btn_saveFile: function(){
    const FileSystemManager = wx.getFileSystemManager();
    if(this.data.save_str == null){
      //把数组中的数据转换成字符串
      this.data.save_str = this.obj2string(this.data.display_data_arr);
      FileSystemManager.writeFileSync(`${wx.env.USER_DATA_PATH}/VR_location.txt`, this.data.save_str, 'utf8');
    }
    else{
      //把数组中的数据转换成字符串
      this.data.save_str = this.obj2string(this.data.display_data_arr);
      FileSystemManager.appendFileSync(`${wx.env.USER_DATA_PATH}/VR_location.txt`, this.data.save_str, 'utf8');
    }
    //把数组中的数据转换成字符串
    // this.data.save_str = this.obj2string(this.data.display_data_arr);
    // console.log('转换:'+this.obj2string(this.data.display_data_arr));
    
    let tt = FileSystemManager.saveFileSync(
      `${wx.env.USER_DATA_PATH}/VR_location.txt`,
      `${wx.env.USER_DATA_PATH}/VR_location.txt`);
    console.log('保存路径:' + tt);
 
    wx.showToast({
      title: '文件保存成功!',
      icon: 'success',
      duration: 1500
    });
     
    const temp = FileSystemManager.readFileSync(`${wx.env.USER_DATA_PATH}/VR_location.txt`, 'utf8');
    console.log("文件内容:" + temp);
 
    //清除数据
    // for()
  }


回答关注问题邀请回答
收藏

3 个回答

  • 小程序技术专员-june
    小程序技术专员-june
    2019-01-03

    你这里为什么要调用 saveFileSync ?

    2019-01-03
    有用
    回复 6
    • 汤不烫🙈
      汤不烫🙈
      2019-01-04

      那我保存文件应该调用什么API???

      2019-01-04
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2019-01-04回复汤不烫🙈

      在 writeFile 或者 appendFile 的时候应该已经写进去了

      2019-01-04
      回复
    • 汤不烫🙈
      汤不烫🙈
      2019-01-04回复小程序技术专员-june

      我知道,但是怎么感觉怪怪的?跟其他文件系统的函数不一样?都不需要保存或者关闭文件。。。。还有就是为什么在开发工具中可以但是在手机上却不行?

      2019-01-04
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2019-01-04回复汤不烫🙈

      开发者工具的实现和真机是不太一样的,毕竟处于不同平台。我们会尽量让开发者工具的表现和真机对齐,但是也不敢保证能做到一样。。。

      2019-01-04
      回复
    • 汤不烫🙈
      汤不烫🙈
      2019-01-04回复小程序技术专员-june

      还有一个问题:

      FileSystemManager.accessSync(string path)

      API函数没有提供返回值,那我怎么判断文件/目录是否存在???


      2019-01-04
      回复
    查看更多(1)
  • 汤不烫🙈
    汤不烫🙈
    2019-01-02

    其他手机上也试过,都是同样的问题

    2019-01-02
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-01-02

    有走fail回调么?

    2019-01-02
    有用
    回复 4
登录 后发表内容