问题是下一个: 我在iOs / win32 cocos2dx项目的Resources文件夹中有一些.txt文件(一切都很完美)。我正试图将这个移植到Android上,一切都很顺利,除了一件事,我在项目构建时找不到我的.txt地图文件。显示资产文件夹中的所有图片我使用此类代码
std::stringstream ss;
ss << "tutorialMap" << i << ".txt";
std::string fileName = ss.str();
const char *fullPath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(fileName.c_str());
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
std::stringstream strStream;
strStream<<"/data/data/com.cocos2dx.application/"<<fileName;
std::string fName = strStream.str();
fullPath = fName.c_str();
CCLog("File name is:%s",fullPath);
#endif
std::ifstream t(fullPath);
std::string str((std::istreambuf_iterator<char>(t)),std::istreambuf_iterator<char>());
CCLog("file content: %s",str.c_str());
当iOS / win32构建工作时,最后一行显示我文件内容,但在android中它是空的。看起来文件不存在。 请帮忙!!!!
P.S。也是一周前(当项目没有准备好的时候)我试图做同样的事情,一切都很好。你能给我一些链接或别的东西,我可以找到它的原因。
答案 0 :(得分:0)
Android保留文件夹assets ziped in .apk file,因此你必须以其他方式去那里:
unsigned char * bufferSize = 0;
unsigned char * charbuffer = CCFileUtils::sharedFileUtils()->getFileData(genrefile, "file", &bufferSize );
assets /这是空的。您可以使用它来存储原始资产文件。档 你在这里保存的是按原样编译成.apk文件,然后是 原始文件名被保留。您可以在中导航此目录 与使用URI和读取文件的典型文件系统相同的方式 使用AssetManager的字节流。例如,这是一个 纹理和游戏数据的良好位置。
关于assets