Mac OSX应用程序内容文件夹的路径是什么

时间:2013-05-25 08:43:38

标签: objective-c++

我正在编写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()会失败。

2 个答案:

答案 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的完整路径。