Cocos2d-x在win32,android和IOS下的文件读写问题
最近在学习和使用Cocos2d-x框架,虽然说的是跨平台,但是在用VS进行开发,然后移植到android或IOS下,也可能会出现各种问题,需要做细微的调整。
例如我在做文件读写操作的时候,很可能在win32上毫无问题,但是到了IOS上就Get Data Failed。
在经过多次尝试后,发现了以下方法进去读取,可以直接在win32,android和IOS下使用:
[cpp]
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
std::string fullPath = CCFileUtils::sharedFileUtils()->fullPathFromRelativeFile(filename,foldername);
#else
std::string fullPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(filename);
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
std::string fullPath = CCFileUtils::sharedFileUtils()->fullPathFromRelativeFile(filename,foldername);
#else
std::string fullPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(filename);
#endif
首先判断如果是IOS平台,则使用fullPathFromRelativeFile方法,这个时候需要filename和它所在的文件夹的路径。
如果是win32或者android平台,则直接使用fullPathForFilename获取文件。
很不幸的是,在IOS上使用fullPathFromRelativeFile,前面只需文件名,后面是文件夹名。但是在win32和android上,filename是带文件夹路径的名称。
所以在之前还需要对filename根据平台的不同而更改。
不过把文件操作进行单独提取,并进行平台的判断进行调整,这都不算什么大问题。
补充:移动开发 , 其他 ,