Найти серийный номер тома с помощью API OSX

Я ищу способ получить серийный номер тома (https://en.wikipedia.org/wiki/Volume_serial_number) для томов, которые представляют собой разделы USB-накопителя в OSX, аналогично тому, что эта функция делает в Windows (https://docs.microsoft.com/en-us/windows/win32/api)./fileapi/nf-fileapi-getvolumeinformationa), в в частности, lpVolumeSerialNumber.

Я просмотрел Disk Arbitration, но ничего не нашел, но я не ограничен использованием этого API. Любая подсказка очень ценится.

Спасибо


person user1573546    schedule 08.11.2019    source источник


Ответы (1)


В macOS есть UUID тома, но нет серийного номера.

Вы можете получить Volume UUID непосредственно из его URL-адреса.

let url = URL(fileURLWithPath: "/Volumes/MyDisk")
let uuidString = try? url.resourceValues(forKeys: [.volumeUUIDStringKey]).volumeUUIDString
person vadian    schedule 08.11.2019
comment
Спасибо за быстрый ответ. Я уже использую volumeUUID в своем коде, но время от времени сталкиваюсь с проблемами с некоторыми устройствами чтения SD-карт, которые возвращают один и тот же volumeUUID для нескольких карт в устройстве чтения. Вот почему я хотел попробовать получить доступ к серийному номеру тома, который, очевидно, находится в файловой системе. - person user1573546; 09.11.2019