在我们游戏开发中,我们往往需要一些本地文件来保存游戏的数据,例如数据库或者简单的文本存储来记录游戏的数据。例如我要在本地文件Resource/score.txt 下
记录分数。 于是有下面的代码
FILE* fp = fopen("score.txt","rb");
if (fp) {
// 这边是一序列的文本操作
.......
};
我们发现,上面的代码,在windows 下面,只要score.txt 这个文件存在,fp 的指针都是有效的,也就是能正常读写。 但是放到android 下,log 追踪后发现,这边的fp始终是一个NULL,文件操作失败。
因为资源文件放在assets 下面,但是打包后,resource 路径是一个压缩包的位置,是不能读写的,所以操作一直是失败的,cocos2dx 提供了CCFileUtils::getWritablePath() 来获取文件的可以操作的路径,来解决上面遇到的问题。 下面贴上我的代码用于解决上诉的问题。
// fileName = "score.txt"