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));