我需要在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