unsigned char* CCFileUtils::getFileData(const
char* pszFileName, const char* pszMode,
unsigned long *
pSize)
{
unsigned char * pBuffer =
NULL;
CCAssert(pszFileName != NULL
&& pSize != NULL && pszMode
!= NULL, "Invalid
parameters.");
*pSize =
0;
do
{
//
read the file from hardware
std::string fullPath =
fullPathForFilename(pszFileName);
FILE
*fp = fopen(fullPath.c_str(), pszMode);
CC_BREAK_IF(!fp);
fseek(fp,0,SEEK_END);
*pSize = ftell(fp);
fseek(fp,0,SEEK_SET);
pBuffer = new unsigned char[*pSize];
*pSize = fread(pBuffer,sizeof(unsigned char), *pSize,fp);
fclose(fp);
} while (0);
if (! pBuffer)
{
std::string msg = "Get data from
file(";
msg.append(pszFileName).append(") failed!");
CCLOG("%s", msg.c_str());
}
return pBuffer;
}