3

我正在尝试在我的项目中获取 XML 文件,但我似乎无法正常工作。我正在使用libXML(cocos2d-x-2.0.4 附带的那个)来解析 XML 文件。

我正在使用CCFileUtils::sharedFileUtils() -> fullPathFromRelativePath( );,但问题是,对于 Android 版本,它不会给出完整路径。不过,它在 iOS 上运行良好。

然后我查看了 GitHub,发现了一些奇怪的东西。事实证明,它fullPathFromRelativePath( )只会返回你传递给它的任何东西

来自GitHub

const char* CCFileUtils::fullPathFromRelativePath(const char *pszRelativePath)
{
    return pszRelativePath;
}

我到处寻找,我得到的只是如何使用CCFileUtils. 我已经能够解析 XML 文件。唯一的问题是我无法获得fullPathFromRelativePath()在 Android 中使用的 XML 文件的完整路径。

如何在 Android 中获取 XML 文件的完整路径?

4

1 回答 1

3

该功能没有任何问题。问题是您的 xml 文件在 apk 中,这是一个压缩文件,您无法直接读取该文件,您应该使用类似

long tmpSize;
const char* xmlData = CCFileUtils::sharedFileUtils()->getFileData(YOUR_PATH_TO_FILE, "r", &tmpSize);

然后你可以使用 lib xml 来处理你得到的数据。

但请记住,您不能修改 apk 文件中的任何内容。如果要写入 xml,则需要先将其复制到某个可写路径(如sdcard或使用getWritablePath())。

对于不在 apk 中的文件,可以直接使用 fopen(),不再需要 getFileData()。

希望这可以帮助。

于 2012-12-12T22:32:24.913 回答