我需要获取 Mac OS X 上已安装的本地卷的列表。以前,Cocoa 类NSWorkspace
had a mountedLocalVolumePaths method https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWorkspace_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/NSWorkspace/mountedLocalVolumePaths用于获取此类卷的安装点数组。自 Lion 以来,此功能已被弃用,文档中没有提示我们应该使用什么。
我发现的唯一提供此信息的其他特定于 Apple 的 API 是FSGetVolumeInfo功能 http://developer.apple.com/library/mac/documentation/Carbon/reference/File_Manager/Reference/reference.html#//apple_ref/c/func/FSGetVolumeInfo来自 CoreServices.framework。如果您通过,这将枚举已安装的卷kFSInvalidVolumeRefNum
为了volume参数和 1..N 为成交量指数。它返回卷名称(作为HFSUniStr255
)通过卷名通过输出参数和安装点根目录输出参数为FSRef
,然后可以使用以下方法将其转换为 URLCFURLCreateFromFSRef()
.
这似乎有点令人费解并且不必要地低级。
还有BSD级别的功能,getfsstat()
and getmntinfo()
两者都发出一个数组statfs
结构。该 API 看起来比核心服务版本更健全。
我应该使用任何更高级别的替代品吗?
有一个更简单的替换,比旧方法更合乎逻辑:NSFileManager 的mountedVolumeURLsIncludingResourceValuesForKeys:options: method http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSFileManager/mountedVolumeURLsIncludingResourceValuesForKeys%3aoptions%3a.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)