在macOS应用程序中,如果需要获取应用程序或其捆绑包中的任何资源的路径,当然可以使用NSBundle
的mainBundle
静态方法
NSBundle *bundle = [NSBundle mainBundle];
NSString *appPath = [bundle bundlePath];
NSString *resourceFolderPath = [bundle resourcePath];
... etc ...
但是,如果用户在应用程序运行时将应用程序包移动到磁盘上的不同位置,则此方法将不起作用。以上所有函数仍将返回用户移动包之前的包的旧路径。
无论用户是否已将其移动到磁盘上,如何获取包的当前路径或包中任何资源的路径?
到目前为止,我已经尝试使用NSRunningApplication
获取它的当前位置,如下所示:
NSRunningApplication *thisApp = [NSRunningApplication runningApplicationWithProcessIdentifier:getpid()];
NSLog(@"bundle URL: %@", [thisApp bundleURL]);
也返回包的旧路径的...but!
https://stackoverflow.com/questions/51850899
复制相似问题