2012-06-01 84 views
4

我需要在Mac OS X上獲取掛載本地卷的列表。以前,Cocoa類NSWorkspace有一個mountedLocalVolumePaths method用於獲取這些卷的掛載點數組。自獅子以來,這已經被棄用了,在文檔中沒有暗示我們應該使用什麼。FSGetVolumeInfo是NSWorkspace不推薦使用的mountedLocalVolumePaths方法的推薦替代方法嗎?

我發現的唯一一個提供此信息的蘋果專用API是來自CoreServices.framework的FSGetVolumeInfo function。如果您通過kFSInvalidVolumeRefNum參數和1..N爲volumeIndex,這枚舉已裝入的卷。它經由卷名輸出參數,並經由rootDirectory輸出參數作爲FSRef,其又可以被轉換爲使用CFURLCreateFromFSRef()一個URL的安裝點返回卷名(作爲HFSUniStr255)。

這似乎有點令人費解並且不必要的低級別。

還有BSD級別的函數,getfsstat()getmntinfo(),它們都發出一個statfs結構數組。 API看起來比核心服務版本更好。

有沒有更高級別的替代品可以替代我用?

+1

我不會擔心替換mountedLocalVolumePaths。它從10.0開始一直在使用,並且最近才被棄用。至少在另外幾個主要的操作系統版本中,這可能不會發生。 – Mark

回答

相關問題