【发布时间】:2012-10-08 17:06:12
【问题描述】:
例如,我有一个闪存盘(KingStone Mass Storage),并且只有一个分区,所以当我将它插入 mac 时。我会看到一个 Volume(它可能是 /Volumes/KingStone)被自动挂载了。我们可以看到 volume(/Volumes/Kingstone) 属于 KingSton 磁盘。
但现在我插入了另一个磁盘,例如 AData 磁盘。并安装了另一个卷。我怎么知道哪个卷属于金石磁盘。(我们可以通过VenderID知道哪个磁盘是kongston)。
现在在代码中,我们可以通过调用 [[NSWorkspace sharedWorkspace] mountedRemovableMedia] 或 [[NSFileManager defaultFileManager] mountedVolumeURLsInclud.....] 来了解已安装的卷
我们还可以通过将 kIOUSBDeviceClassName 与 IOServiceMatching 和 IOServicesGetMatchingServices 一起使用来了解所有 USB 设备
连kIOMediaClassName加上这两个函数我们就知道卷媒体了,
我们可以通过路径确定每个卷媒体属于哪个 USB 设备。
但我不知道卷媒体的挂载点。
其他有用的东西。
对不起,我的泳池英语。
【问题讨论】:
-
使用函数 getmntinfo() 我们将获得诸如执行命令 'mount' 元素 f_mntonname 和 statfs 中的 f_mntfromname 的信息 f_mntfromname 将是 /dev/bsdname 我们可以通过检查“BSD Name”属性获得 bsdname我们通过使用 kIOMediaClassName 获得的对象,所以我归档了我的目标,尽管它可能有些复杂。
标签: macos usb media volume mount