это может вам помочь. (а может и нет) ...
Играя с командой 'ioreg', я наткнулся на что-то, что напомнило мне ваш вопрос, и поэтому я опубликую его:
попробуйте ввести следующую команду:
ioreg -c IOMedia -x
, что приведет к большому беспорядку вывода, который выглядит примерно так:
| +-o IOBlockStorageDriver <class IOBlockStorageDriver, registered, matched, active, busy 0, retain 7>
| +-o Apple read/write Media <class IOMedia, registered, matched, active, busy 0, retain 9>
| | {
| | "Removable" = Yes
| | "BSD Unit" = 0x4
| | "IOBusyInterest" = "IOCommand is not serializable"
| | "BSD Minor" = 0xc
| | "Ejectable" = Yes
| | | "BSD Name" = "disk4"
| | "Leaf" = No
| | "IOMediaIcon" = {"CFBundleIdentifier"="com.apple.iokit.IOStorageFamily","IOBundleResourceFile"="Removable.icns"}
| | "Preferred Block Size" = 0x200
| | "Whole" = Yes
| | "Open" = Yes
| | "Size" = 0x100000
| | "Writable" = Yes
| | "Content" = "Apple_partition_scheme"
| | "IOGeneralInterest" = "IOCommand is not serializable"
| | "Content Hint" = ""
| | } | "BSD Major" = 0xe
все это заставляет меня поверить (и, следовательно, здесь вслепую рекомендует вам провести расследование), что если вы пройдете по дереву реестра io, совпадающему с IOMedia, вы можете получить словари свойств, которые будут содержать запись с ключом "IOMediaIcon", которая сама по себе появляется быть коллекцией, информирующей вас об идентификаторе пакета и имени файла ресурса.
Нельзя сказать, что это легко ... но посмотрите FireWire SDK , чтобы найти весь пример кода, который вам может понадобиться ...
в любом случае это, вероятно, «лучше», чем жестко заданные предварительно заполненные пути (которые могут исчезнуть в будущих выпусках ОС).
| K <</p>