2009-09-02 100 views
4

我希望我的應用程序能夠從可移動存儲設備上運行,並且它應該獲取從中運行的可移動存儲或從中啓動應用程序的rem存儲設備的路徑。 我看到nsworkspace獲取可移動存儲設備的路徑,但不知道如何在運行時獲取路徑。在運行時獲取應用程序的路徑+ cocoa

請建議一種方法來做到這一點。我也搜索了網絡,並知道在mac系統上沒有自動運行功能。我希望我的應用能夠在移動存儲連接到Mac系統時自動啓動。有沒有解決這個問題的方法?

感謝

回答

9

[[NSBundle mainBundle] bundlePath]會給你的路徑,您的.app包裝。

從那裏開始,您需要使用NSFileManager API來枚舉卷並找出您的應用程序所在的位置以及它是否符合可移動性標準。 Snow Leopard已經對API進行了重大更新。

撇開;這對於一個應用程序來說是一個非常奇怪的要求。非常典型,至少可以說。

+2

或者,如果您正在運行FoundationTool,則可以使用[[[NSBundle mainBundle] executablePath]'。 – 2009-09-02 21:39:10

+0

謝謝各位的回覆 – King 2009-09-02 21:42:07

5

對於自動運行功能的第二個問題,有幾種技術可以檢測卷是否已裝入,然後使用它來觸發操作(如啓動程序)。但是他們都需要你的軟件已經安裝好,以便你可以運行一個守護進程來監視卷的安裝。我並不是說程序應該做這樣的事情(它幾乎從不應該),但它是一種技術。我懷疑這不是你要問的。

隨着OS X的發佈,系統自動運行某些基於卷裝的問題被刪除了。幾乎不可思議的是,這種行爲將被重新添加。這是對各種濫用行爲的邀請,對用戶來說收益甚微。 OS X將在掛載新卷時打開Finder窗口,並且可以爲根目錄提供有用的背景圖像,以指導用戶如何啓動應用程序。

+0

謝謝羅博的回覆 – King 2009-09-03 21:31:07

相關問題