5

Mac OS Xでマウントされたローカルボリュームのリストを取得する必要があります。以前は、CocoaクラスNSWorkspaceには、そのようなボリュームのマウントポイントの配列を取得するためのmountedLocalVolumePathsメソッドがありました。Lion以降、これは非推奨になりました。代わりに何を使用すべきかについてのヒントはドキュメントにありません。

この情報を提供する私が見つけた他の唯一のApple固有のAPIは、CoreServices.frameworkのFSGetVolumeInfo関数です。これはkFSInvalidVolumeRefNumボリュームパラメータにパスし、volumeIndexに1..Nを渡すと、マウントされたボリュームを列挙します。これは、volumeName出力パラメーターを介してボリューム名を(としてHFSUniStr255)返し、 rootDirectory出力パラメーターを介してマウントポイントをとして返しFSRefます。これは、を使用してURLに変換できますCFURLCreateFromFSRef()

これは少し複雑で、不必要に低レベルのようです。

BSDレベルの関数もあり、getfsstat()どちらgetmntinfo()も構造体の配列を出力しstatfsます。APIはコアサービスバージョンよりも賢いようです。

代わりに使用する必要があるより高いレベルの代替品はありますか?

4

1 に答える 1

8

古いメソッドよりもはるかに論理的な場所に、はるかに単純な代替手段があります: NSFileManager のmountedVolumeURLsIncludingResourceValuesForKeys:options:methodです。

于 2012-06-01T15:39:59.600 に答える