收藏
回答

如何优雅的实现本地文件自定义路径的储存?另外勘误一个API文档的小错误

框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小游戏 saveFile 客户端 Android 6 3

当我想在微信小游戏中储存一些下载下来的资源,以供以后不需要再次下载时,出现了问题:


比如我的资源url是wxfile://res/a/b/image.png.

当我调用FileSystemManager.saveFile(Object object)这个API时出现了错误。

其中

tempFilePath: 'wxfile://res/a/b/image.png'

filePath: wx.env.USER_DATA_PATH + 'res/a/b/image.png'

errMsg说我的filePath的路径不存在。


我试了一下,发现问题在于这个api不会自动创建路径中不存在的文件目录




接着我打算对于filePath的路径不存在的情况,先FileSystemManager.mkdir(Object object)这个api来创建文件目录。然后发现mkdir这个api也不会自动创建路径中不存在的文件目录


由于我的资源文件的路径比较深,于是我现在只有两个方案:

1, 不再创建和资源文件一样的文件目录了,而是放在同一个文件目录中,我可以通过把路径中的'/'替换成下划线来实现。

2,一层一层的尝试创建文件目录,比如'res/a/b/image.png'就先尝试创建'res/a/b',如果失败就尝试创建'res/a',如果再失败就尝试创建'res/a',直到成功。然后再一层一层的把之前失败的创建出来。这样虽然可以解决问题,但是异步调用函数非常多效率也很低。


请问官方的大大,有没有什么好的方法?




另外勘误一个小错误:

https://mp.weixin.qq.com/debug/wxagame/dev/document/file/FileSystemManager.saveFile.html?t=201832


属性类型说明支持版本
savedFilePathnumber存储后的文件路径

类型应为string



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

2 个回答

  • AieyLisyh
    AieyLisyh
    2018-05-04

    有的手机就是不能自动创建目录,我最后把路径的斜杠都改成双下划綫了

    2018-05-04
    有用
    回复
  • ChinaBoy
    ChinaBoy
    2018-05-04

    楼主最后完成完成了没?

    2018-05-04
    有用
    回复
登录 后发表内容