2012-06-01 83 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

回答

相关问题