CCFileUtils 文件搜索

来源:互联网 发布:淘宝小饰品店赚钱吗 编辑:程序博客网 时间:2024/05/21 11:02

1、unsigned char* getFileDataFromZip(const char* pszZipFilePath, const char* pszFileName, unsigned long * pSize);


     unsigned long size;

CCFileUtils::sharedFileUtils()->getFileDataFromZip("configs/name.zip", "name.txt", &size);

// param1【in】:压缩文件的路径

// param2【in】:要获取压缩文件中的某个文件中的数据

// param3【out】:读取文件数据的大小


===================================================================================


CCFileUtils:

数据成员:

CCDictionary* m_pFilenameLookupDict; // 名字字典,使用加密文件时适合用

    std::vector<std::string> m_searchResolutionsOrderArray; // 子搜索路径
       std::vector<std::string> m_searchPathArray; // 搜索路径

       std::map<std::string, std::string> m_fullPathCache; // 全路径搜索缓存


函数成员:

==============设置搜索路径========================

virtual void setSearchPaths(const std::vector<std::string>& searchPaths);
      virtual void addSearchPath(const char* path);

==============设置子搜索路径======================

    virtual void setSearchResolutionsOrder(const std::vector<std::string>& searchResolutionsOrder);
    virtual void addSearchResolutionsOrder(const char* order);
      ===============设置名字字典=======================

    virtual void loadFilenameLookupDictionaryFromFile(const char* filename);
    virtual void setFilenameLookupDictionary(CCDictionary* pFilenameLookupDict);

================================================

 

fullPathForFilename()搜索方式:

1、先从全路径缓存m_fullPathCache中搜索

如果没有再按以下方式搜索:

1、 std::string newName = getNewFilename(); 

m_pFilenameLookupDict名字字典中查找替换名字。

2、组合路径:

路径1 + 子路径1 + 文件名

路径1 + 子路径2 + 文件名

路径1 + 子路径3 + 文件名

路径1 + 文件名

路径2 + 子路径1 + 文件名

路径2 + 子路径2 + 文件名

路径2 + 子路径3 + 文件名

路径2 + 文件名

。。。。

》》 搜索路径和子搜索路径都用vector存放路径,做成栈的结构,所以the lower index,the higher priority。

》》 const char* CCFileUtils::fullPathFromRelativeFile(const char *pszFilename, const char *pszRelativeFile)

param1:从名字字典m_pFilenameLookupDict中获取的替换文件名    param2:相对路径,返回两个参数相加而成的fullpath,这和fullPathForFilename()不同。

0 0