1、从文件中读取内容
auto sharedFileUtils = FileUtils::getInstance(); std::string ret; sharedFileUtils->purgeCachedEntries(); std::vector<std::string> searchPaths = sharedFileUtils->getSearchPaths(); searchPaths.insert(searchPaths.begin(), "Misc"); sharedFileUtils->setSearchPaths(searchPaths); std::vector<std::string> resolutionsOrder = sharedFileUtils->getSearchResolutionsOrder(); resolutionsOrder.insert(resolutionsOrder.begin(), "resources-ipadhd"); resolutionsOrder.insert(resolutionsOrder.begin()+1, "resources-ipad"); resolutionsOrder.insert(resolutionsOrder.begin()+2, "resources-widehd"); resolutionsOrder.insert(resolutionsOrder.begin()+3, "resources-wide"); resolutionsOrder.insert(resolutionsOrder.begin()+4, "resources-hd"); resolutionsOrder.insert(resolutionsOrder.begin()+5, "resources-iphone"); sharedFileUtils->setSearchResolutionsOrder(resolutionsOrder); for (int i = 1; i < 7; i++) { auto filename =StringUtils::format("test%d.txt",i); //获取文件路径 ret = sharedFileUtils->fullPathForFilename(filename.c_str()); //获取文件中的字符串 std::string st = FileUtils::getInstance()->getStringFromFile(filename); log("%s -> %s",filename.c_str(),st.c_str()); }
向本地写入和读取
auto sharedFileUtils = FileUtils::getInstance(); std::string ret; sharedFileUtils->purgeCachedEntries(); std::vector<std::string> searchPaths = sharedFileUtils->getSearchPaths(); std::string writablePath = sharedFileUtils->getWritablePath(); std::string fileName = writablePath + "external1.txt"; char szBuf[100] = "Hello Cocos2d-xrewrwe!"; /*向本地写入*/ FILE* fp = fopen(fileName.c_str(), "wb"); if (fp) { size_t ret = fwrite(szBuf, 1, strlen(szBuf), fp); CCASSERT(ret != 0, "fwrite function returned zero value"); fclose(fp); if (ret != 0) log("Writing file to writable path succeed."); } /**********************************/ searchPaths.insert(searchPaths.begin(), writablePath); sharedFileUtils->setSearchPaths(searchPaths); //Get external.txt from writable path std::string fullPath = sharedFileUtils->fullPathForFilename("external1.txt"); log("external file path = %s",fullPath.c_str()); /*读取文件*/ if (fullPath.length() > 0) { fp = fopen(fullPath.c_str(), "rb"); if (fp) { char szReadBuf[100] = {0}; size_t read = fread(szReadBuf, 1, strlen(szBuf), fp); if (read > 0) log("The content of file from writable path: %s",szReadBuf); fclose(fp); } }
判断文件是否存在
auto s = Director::getInstance()->getWinSize(); auto sharedFileUtils = FileUtils::getInstance(); Label* pTTF; bool isExist = false; //判断文件是否存在 isExist = sharedFileUtils->isFileExist("grossini.png"); pTTF = Label::createWithSystemFont(isExist ? "Images/grossini.png exists" : "Images/grossini.png doesn't exist", "", 20); pTTF->setPosition(Point(s.width / 2, s.height / 2)); this->addChild(pTTF);
auto s = Director::getInstance()->getWinSize(); auto sharedFileUtils = FileUtils::getInstance(); ValueMap dict; dict["grossini.bmp"] = Value("grossini.png"); dict["grossini.xcf"] = Value("grossini.png"); sharedFileUtils->setFilenameLookupDictionary(dict); auto sprite = Sprite::create("grossini.bmp"); this->addChild(sprite); sprite->setPosition(Point(s.width / 2, s.height / 2));