我需要在 Mac OS X 上获取已挂载的本地卷的列表。以前,Cocoa 类NSWorkspace
有一种mountedLocalVolumePaths
方法可以获取此类卷的挂载点数组。自 Lion 以来,现在已弃用,文档中没有提示我们应该改用什么。
我发现提供此信息的唯一其他 Apple 特定 API 是 CoreServices.framework 中的FSGetVolumeInfo
函数。如果您kFSInvalidVolumeRefNum
为volume参数传递并且为volumeIndex传递 1..N,这将枚举已安装的卷。它通过volumeName输出参数返回卷名(作为 a HFSUniStr255
),通过rootDirectory输出参数作为 a返回挂载点,然后可以使用.FSRef
CFURLCreateFromFSRef()
这似乎有点令人费解且不必要的低级。
还有 BSD 级别的函数,getfsstat()
它们getmntinfo()
都发出一个statfs
结构数组。API 似乎比核心服务版本更理智。
我应该使用任何更高级别的替代品吗?