最近cocos2d项目中用到了lua的io.open,但是一直失败
首先,定位原因,io.open返回2个值
local file, errInfo = io.open('a.txt', r)
如果失败,第一个值为nil,第二个值为错误信息
错误信息为:No such file or directory
但是查看对应的文件路径和文件,都是正常的
之后又搜了一大圈,看了源码,发现了这个函数:
getSuitableFOpen
该函数返回对应平台下的用于open的路径,再看看内部实现,发现是中文路径的锅
解决
最终解决方案为:打开的文件名先用getSuitableFOpen转换即可
local path = cc.FileUtils:getInstance():getSuitableFOpen(path) -- 转换下路径
local file, errInfo = io.open(path, 'r')