cocos2dx如何使用CCFileUtils进行文件查找的

本文介绍了Cocos2d-x中如何利用CCFileUtils进行文件查找,包括绝对路径和相对路径的处理。内容涉及文件存在性判断、在pak文件中的查找以及搜索路径的添加。此外,还讲解了从pak文件中读取数据的方法,如利用getFileDataFromPak和getFileData函数。

Cocos2dx支持使用绝对路径以及相对路径进行查找文件

CCFileUtils是一个抽象类,它在ios中使用CCFileUtilsIOS作为具体类。

boolCCFileUtilsIOS::isFileExist(conststd::string& strFilePath)函数可以使用绝对路径以及相对路径,绝对路径调用NSFileManager的fileExistsAtPath

判断文件是否存在,相对路径调用NSBundle的pathForResource来判断文件是否存在

boolCCFileUtils::isFileExistInPak(constchar *filePath)函数判断文件是否在pak文件中,游戏一般把图片等资源放在pak文件中,这样起到一个加密的

作用。我们公司游戏就是通过对图片资源以及lua脚本资源进行一个加密打包处理,最终生成的ios app包含的是加密后的pak文件。

voidCCFileUtils::addSearchPath(constchar* path_)函数是用来添加搜索路径的,我们在游戏里面查找文件不需要写一个文件很长的路径名,可以把

某个基本的资源文件夹作为搜索路径加到搜索路径缓存中去,然后再需要用到文件的地方填写去除这个搜索路径子路径,cocos2dx它会帮我们合成一个全

路径,如果是绝对路径就使用NSFileManager的fileExistsAtPath进行查找,如果是相对路径就是用NSBundle的pathForResource进行查找。如果找不到文件,

就会使用isFileExistInPak到pak中查找。

如果查找到了文件,就会返回全路径,如果在pak中查找到文件,则会返回这样的路径:path = "pak://" + filepath,filepath是合成路径即全路径。

不在pak中的文件可以直接通过读写函数把文件加载到内存,而在pak的文件,需要通过如下接口从pak文件中解析出文件:

unsignedchar *CCFileUtils::getFileDataFromPak(constchar *filePath,unsignedlong * pSize)函数从pak中获得数据

unsignedchar* CCFileUtils::getFileData(constchar* pszFileName, constchar* pszMode, unsignedlong * pSize)函数是读取文件数据的,如果路径前

6个个字符是pak://则会调用getFileDataFromPak从pak中获取数据,否则直接使用fopen打开一个文件读取数据





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值