我有一个OS X应用程序作为.app包,它可以驻留在文件系统的任何位置.有没有办法以编程方式从中查找包的当前路径.
getcwd()不起作用,因为打开的所有包的当前目录是通过单击打开或使用open命令是"/".如果我从myapp.app/Contents/MacOS调用可执行文件,则会正确显示该目录.这是一个可可应用程序.
有线索吗?
您应该能够通过[[NSBundle mainBundle] bundleURL];或找到.app的位置[[NSBundle mainBundle] bundlePath];.
但是,您可能希望通过NSBundle在大多数情况下查找它们来访问.app内的资源(这涉及本地化等问题).
注意:如果您计划修改应用程序包; 别.您不应该,也不能假定您对应用程序包具有写入权限; 如果你这样做,有些事情可能是非常错误的.
编辑:作为一个兴趣点,如果您在OS X上编写C程序并需要找到可执行文件的位置; 您可以像这样使用非便携式主声明:
int main (int argc, const char *argv[], const char *env[], const char *path[]) {
// path[0] now contains the path to the executable
// NOT PORTABLE! OS X ONLY!
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3364 次 |
| 最近记录: |