cocos2dx-2.x CCFileUtils文件管理类分析(4)

cocos2dx-2.x CCFileUtils文件管理类分析(4),第1张

概述在3中,我们又分析了几个函数,在这一篇中我们继续分析其他一些函数。1、android平台unsigned char* CCFileUtilsAndroid::getFileData(const char* pszFileName, const char* pszMode, unsigned long * pSize){ return doGetFileData(pszFil
在3中,我们又分析了几个函数,在这一篇中我们继续分析其他一些函数。1、androID平台unsigned char* CCfileUtilsAndroID::getfileData(const char* pszfilename,const char* pszMode,unsigned long * pSize){        return doGetfileData(pszfilename,pszMode,pSize,false);}-->>//pszfilename 文件名//pszMode 读取模式,只有对绝对路径有用,参数就是C API的类型//pSize 读出的字节大小//forAsync 同步还是异步unsigned char* CCfileUtilsAndroID::doGetfileData(const char* pszfilename,unsigned long * pSize,bool forAsync){    unsigned char * pData = 0;        if ((! pszfilename) || (! pszMode) || 0 == strlen(pszfilename))    {        return 0;    }        //先获取文件的全路径    string fullPath = fullPathForfilename(pszfilename);        if (fullPath[0] != '/')    {        //如果以"assets/"开头,即文件在安装包里,那么通过压缩文件类从压缩包中读取,	//其实androID的安装包就是压缩包。        if (forAsync)        {            pData = s_pZipfile->getfileData(fullPath.c_str(),s_pZipfile->_dataThread);        }        else        {            pData = s_pZipfile->getfileData(fullPath.c_str(),pSize);        }    }    else    {        do        {   	     //如果是绝对路径,则通过C API读取。            // read rrom other path than user set it	        //cclOG("GETTING file absolute DATA: %s",pszfilename);            file *fp = fopen(fullPath.c_str(),pszMode);            CC_BREAK_IF(!fp);                        unsigned long size;            fseek(fp,SEEK_END);            size = ftell(fp);            fseek(fp,SEEK_SET);            pData = new unsigned char[size];            size = fread(pData,sizeof(unsigned char),size,fp);            fclose(fp);                        if (pSize)            {                *pSize = size;            }        } while (0);    }        if (! pData)    {        std::string msg = "Get data from file(";        msg.append(pszfilename).append(") Failed!");        cclOG("%s",msg.c_str());    }        return pData;}总结:到此为止,cocos2dx-2.X androID平台的文件读出我已经通过源码的形式分析完了,做个记录,以防忘记。
总结

以上是内存溢出为你收集整理的cocos2dx-2.x CCFileUtils文件管理类分析(4)全部内容,希望文章能够帮你解决cocos2dx-2.x CCFileUtils文件管理类分析(4)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1052771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存