如何优雅的实现本地文件自定义路径的储存?另外勘误一个API文档的小错误
发布于 6 年前 作者 mingluo 17753 次浏览 来自 问答

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

比如我的资源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 回复

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

楼主最后完成完成了没?

回到顶部