cocos2dx中zip包读取解压使用

这篇博客介绍了在cocos2dx游戏中如何读取和解压zip文件,包括拷贝zip到可读写路径、解压到内存以及修改FileUtils的路径读取方式。同时,作者提到解压时需取消#define NOUNCRYPT注释,以确保正常解压。文章最后预告将探讨cocos2dx中的xxtea加密技术。
摘要由CSDN通过智能技术生成

记录一下在cocos2dx中读取zip和解压zip

1.读取zip

获取可读写入路径,把zip文件拷到可读写路径下,如下

bool ResourcesDecode::loadZIP(const std::string &zipFilename,const std::string &password/*""*/)
{
    std::string filename = zipFilename;
    std::string dataFilePath = FileUtils::getInstance()->getWritablePath() + filename;
    
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    if(access(dataFilePath.c_str(), 0) != 0)
    {
        std::string strPath = FileUtils::getInstance()->fullPathForFilename(filename);
        ssize_t len = 0;
        unsigned char *data = 0;
        CCLOG("strPath:%s",strPath.c_str());
        data = FileUtils::getInstance()->getFileData(strPath.c_str(), "r", &len);
        CCLOG("file:%s, len:%zd", dataFilePath.c_str(), len);
        FILE* fp = fopen(dataFilePath.c_str(), "w+");
        if(!fp)
        {
            CCLOG("file not found!");
        }
        fwrite(data, sizeof(char), len, fp);
        fclose(fp);
        delete []data;
        data = 0;
    }
#endif
    //解压
    unCompress(dataFilePath.c_str(),password);
    return true;
}
上面参数中password为zip压缩文件密码,在使用资源之前调用loadZIP即可

2.解压zip

读取zip到内存,并且解压zip,如下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值