cocos2dx文件管理类是一个很重要的类,这里对这个类进行一下分析: CCFileUtils是文件管理类的基类,不同平台下android,ios,win32都有 继承于这个类的子类,如android class CC_DLL CCFileUtilsAndroid : public CCFileUtils 1、单例类: static CCFileUtils* sharedFileUtils() 而实现却在CCFileUtilsAndroid.cpp文件中:并且创建的是各个平台下的子类实例 CCFileUtils* CCFileUtils::sharedFileUtils() { if (s_sharedFileUtils == NULL) { s_sharedFileUtils = new CCFileUtilsAndroid(); s_sharedFileUtils->init(); //获取apk包的路径,这里是java端设置的。 std::string resourcePath = getApkPath(); // record the zip on the resource path // static ZipFile *s_pZipFile = NULL; // 因为android的很多资源是放在安装包里的assets文件里, //所以获取资源是需要从包里解压,这就用到了ZipFile类 s_pZipFile = new ZipFile(resourcePath,"assets/"); } return s_sharedFileUtils; } 2、初始化: bool CCFileUtilsAndroid::init() { m_strDefaultResRootPath = "assets/"; //默认的资源路径,默认是安装包 return CCFileUtils::init(); -->> 1 } 1 -->> bool CCFileUtils::init() { //m_searchPathArray -- 资源搜索路径数组 //m_searchResolutionsOrderArray -- 资源分辨率数组 m_searchPathArray.push_back(m_strDefaultResRootPath); m_searchResolutionsOrderArray.push_back(""); return true; }