当我想在微信小游戏中储存一些下载下来的资源,以供以后不需要再次下载时,出现了问题:
比如我的资源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
属性 | 类型 | 说明 | 支持版本 |
---|---|---|---|
savedFilePath | number | 存储后的文件路径 |
类型应为string