2012-12-12 3 views
3

프로젝트에서 XML 파일을 가져 오려고하는데 올바르게 작동하지 않는 것 같습니다. XML 파일을 구문 분석하기 위해 libXML (cocos2d-x-2.0.4와 함께 제공되는 것)을 사용하고 있습니다.안드로이드 장치의 COCOS2D-X에서 파일의 전체 경로 얻기

나는 CCFileUtils::sharedFileUtils() -> fullPathFromRelativePath();을 사용하고 있지만 문제는 Android 버전의 경우 전체 경로를 제공하지 않는다는 것입니다. 하지만 iOS에서는 잘 작동합니다.

나는 GitHub을보고 이상한 것을 보았다. fullPathFromRelativePath()은에 전달한 내용 만 으로 반환합니다. GitHub에서

:

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

내가 찾아 봤는데 내가 얻을 모두 CCFileUtils를 사용하여 XML 파일을 읽는 방법입니다. 이미 XML 파일을 구문 분석 할 수 있습니다. 유일한 문제는 Android에서 fullPathFromRelativePath()을 사용하여 XML 파일의 전체 경로를 가져올 수 없다는 것입니다.

Android에서 XML 파일의 전체 경로는 어떻게 얻을 수 있습니까?

답변

3

이 기능에는 아무런 문제가 없습니다. 문제는 당신은 당신이 당신이 얻을 데이터를 처리 할 수 ​​LIB XML을 사용할 수 있습니다

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

같은 것을 사용해야합니다, 당신의 XML 파일은 압축 파일입니다 APK, 내부에, 당신이 직접 해당 파일을 읽을 수 있습니다.

하지만 apk 파일의 내용은 수정할 수 없습니다. xml에 쓰기를 원하면 쓰기 가능한 경로 (예 : sdcard 또는 getWritablePath())로 먼저 복사해야합니다.

apk에없는 파일의 경우 fopen()을 직접 사용할 수 있으므로 더 이상 getFileData()가 필요하지 않습니다.

희망이 도움이됩니다.

+0

감사합니다. 필자가 파일 경로를 얻지 못하면 대신'getFileData()'를 사용할 계획이었습니다. 추측 해 보면 그것이 올바른 대답이었습니다. – alxcyl

관련 문제