我需要在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看起來比核心服務版本更好。
有沒有更高級別的替代品可以替代我用?
我不會擔心替換mountedLocalVolumePaths。它從10.0開始一直在使用,並且最近才被棄用。至少在另外幾個主要的操作系統版本中,這可能不會發生。 – Mark