原生向cache目录 写了个文件 如果不restart的话会找不到

有没有遇到相同问题的?我也了个一个文件到一个用的cache目录,但是直接读取会提示找不到该文件,只有restart 才能找到。。。

最好是给出代码,还有提示信息,这样的话,大家才能帮你解答


我在main.js已经提前设置了searchPath了 但是我自己写入这个目录的时候 会找不到 这个只会发生在首次安装 restart 一次就好了

你应该确保有该目录吧

可以确保 调用的jsb.fileUtils.writeStringToFile 写的文件 如果没写成功 不会出现restart后 就能找到呀

也就是说,你调用写入的 api 是正常的,读取的话会提示找不到该文件?

嗯 是的 我看了下C++FileUtils的代码 查找文件会从cachePath里面去寻找 ,如果找不到 再从searchPath去找 但是这个查找貌似没用,cachePath 貌似是每次启动的时候就遍历 生成好的?所以我如果向cache目录写入一个新文件 是找不到的,除非restart一次 重新生成一次cachePath

版本是2.3.3

跟了一下 走到这里就not found 了 实际文件已经被写进cache目录

这里的 fp 为 nullptr 但是文件是存在的 是吗?

是的 然后游戏 restart一次就可以了。。

估计是接口调用的时序有问题. 麻烦确认下 你是不是在 write 操作完成 之前调用了 read. @111894