Мне нужно получить список смонтированных локальных томов в Mac OS X. Раньше у класса Cocoa NSWorkspace
был _ 2_ метод получения массива точек монтирования для таких томов. Начиная с Lion, это устарело, и в документации нет намека на то, что нам следует использовать вместо него.
Единственный другой API, специфичный для Apple, который я нашел, который предоставляет эту информацию, - это _ 3_ function из CoreServices.framework. Это перечислит подключенные тома, если вы передадите kFSInvalidVolumeRefNum
для параметра volume и 1..N для volumeIndex. Он возвращает имя тома (как HFSUniStr255
) через выходной параметр volumeName и точку монтирования через выходной параметр rootDirectory как FSRef
, который, в свою очередь, может быть преобразован в URL с использованием CFURLCreateFromFSRef()
.
Это кажется немного запутанным и излишне низким.
Существуют также функции уровня BSD, getfsstat()
и getmntinfo()
, которые генерируют массив из statfs
структур. API кажется более разумным, чем версия Core Services.
Могу ли я использовать замену более высокого уровня?