我正在编写Objective-c ++应用程序,并且我正在尝试访问应用程序Contents
文件夹。
让我们假装我的应用名称是MyApp.app。如果我从Xcode运行我的应用程序,那么我可以像这样访问Contents
文件夹:
std::fstream file;
file.open("MyApp.app/Contents/some_text_file.txt");
if(file.is_open()) {
...
}
else {
...
}
但如果我在没有Xcode的情况下运行我的构建应用程序,则file.is_open()
会失败。
答案 0 :(得分:3)
[[NSBundle mainBundle] bundlePath]
将为您提供MyApp.app
目录的路径。然后,您可以将Contents
添加到该路径。
或者,[[NSBundle mainBundle] resourcePath]
将为您提供MyApp.app/Contents/Resources
目录的路径。然后,您可以从该路径中删除该子目录;见Working with paths from [[NSBundle mainBundle] resourcePath]
答案 1 :(得分:2)
使用NSBundle类获取应用程序包的信息。 [[NSBundle mainBundle] bundlePath]为您提供MyApp.app的完整路径。