在runtime + cocoa中获取应用程序的路径

时间:2009-09-02 21:27:25

标签: cocoa removable-drive

我希望我的应用程序从可移动存储设备运行,它应该从其运行的可移动存储的路径或启动应用程序的rem存储设备。 我已经看过nsworkspace来获取可移动存储设备的路径,但是不知道如何在运行时获取路径。

请建议一种方法来做到这一点。我也在网上搜索并发现mac系统上没有自动运行功能。每当可移动存储连接到mac系统时,我希望我的应用程序自动启动。对此有什么解决方法吗?

由于

2 个答案:

答案 0 :(得分:10)

[[NSBundle mainBundle] bundlePath]将为您提供.app包装器的路径。

从那里开始,您需要使用NSFileManager API来枚举卷,并确定您的应用是哪一个,以及它是否符合您的可移动性标准。这些API在Snow Leopard中得到了显着更新。

一边;这对于应用程序来说是一个非常奇怪的要求。至少可以说是非典型的。

答案 1 :(得分:5)

关于自动运行功能的第二个问题,有几种技术可以检测已装入卷,然后使用它来触发操作(如启动程序)。但是所有这些都要求您的软件已经安装好,以便您可以运行守护程序来监视卷安装。我并不是说程序应该做这样的事情(它几乎从不应该),但它是一种技术。我怀疑这不是你要问的。

随着OS X的发布,系统自动运行基于卷装载的东西的可疑功能已被删除。这种行为将被重新添加几乎是不可思议的。它是对各种滥用行为的邀请,对用户的好处很少。安装新卷时,OS X将打开Finder窗口,您可以自由地为根目录提供有用的背景图像,以指导用户如何启动您的应用程序。