我想知道如何從C++文件打開應用程序包中的文件。在C++文件中使用iPhone資源
I.E.我有一個文件「manifest.xml」,它開始複製到應用程序包中。我需要從C++的方式來加載這個文件。我認爲這將涉及在Obj-C代碼中的某處設置路徑,以便該文件位於工作目錄中。
我想知道如何從C++文件打開應用程序包中的文件。在C++文件中使用iPhone資源
I.E.我有一個文件「manifest.xml」,它開始複製到應用程序包中。我需要從C++的方式來加載這個文件。我認爲這將涉及在Obj-C代碼中的某處設置路徑,以便該文件位於工作目錄中。
OS X應用程序的核心是Unix應用程序。
應用程序如何找到其父目錄並在Linux上打開文件?你會做同樣的方式在C++在OS X現在
,如果你願意做一些可可或電話的CoreFoundation,你可以讓你的生活更容易,但如果你的要求是隻可以使用C++調用,然後該任務與任何其他Unix-sytle系統沒有區別。
您必須使用CoreFoundation(C)或Foundation(ObjC)。應用程序包中的每個對象(「主包」)都可以使用CFBundle
/NSBundle
函數訪問。
在的CoreFoundation你這樣做(略NULL的檢查): 「..要麼加載此文件」
CFURLRef manifest_url = CFBundleCopyResourceURL(CFBundleGetMainBundle(),
CFSTR("manifest"), CFSTR("xml"),
NULL);
char manifest_path[1024];
CFURLGetFileSystemRepresentation(manifest_url, true,
manifest_path, sizeof(manifest_path));
CFRelease(manifest_url);
FILE* f = fopen(manifest_path, "r"); // etc.
在基金會這樣做
NSString* manifest_string = [[NSBundle mainBundle] pathForResource:@"manifest"
ofType:@"xml"];
const char* manifest_path = [manifest_string fileSystemRepresentation];
FILE* f = fopen(manifest_path, "r"); // etc.
- 要麼? – 2010-02-08 07:21:31