小编Ant*_*nio的帖子

ObjectiveC中如何获取磁盘驱动器信息

我查看了 Mac OSX 磁盘实用程序的主窗口,发现了有关 USB 设备的四个信息(当选择驱动器项时):

  • 磁盘描述
  • 连接总线
  • 连接类型
  • USB 序列号

我能够使用磁盘仲裁框架获取前三个信息。我让他们注册一个回调例程以响应新的磁盘设备检测:

DARegisterDiskAppearedCallback(session, NULL, OnDiskAppeared, (void *)NULL);
Run Code Online (Sandbox Code Playgroud)

例程如下所示:

static void OnDiskAppeared(DADiskRef disk, void *__attribute__((__unused__)) ctx) {

CFDictionaryRef dict = DADiskCopyDescription(disk);

const void *DAMediaName = CFSTR("DAMediaName");
const void *DAVolumeName = CFSTR("DAVolumeName");
const void *DADeviceModel = CFSTR("DADeviceModel");
const void *DAMediaUUID = CFSTR("DAMediaUUID");
const void *DAVolumeUUID = CFSTR("DAVolumeUUID");    

printf("DAMediaName: ");
CFShow(CFDictionaryGetValue(dict, DAMediaName));
printf("DAVolumeName: ");
CFShow(CFDictionaryGetValue(dict, DAVolumeName));
printf("DADeviceModel: ");
CFShow(CFDictionaryGetValue(dict, DADeviceModel));
printf("DAMediaUUID: ");
CFShow(CFDictionaryGetValue(dict, DAMediaUUID));
printf("DAVolumeUUID: ");
CFShow(CFDictionaryGetValue(dict, DAVolumeUUID));

CFRelease(dict);}
Run Code Online (Sandbox Code Playgroud)

该例程实际上返回了有关卷和物理驱动器的信息,并且在最后一种情况下,返回了有关我之前讨论的三个磁盘属性的信息。

不幸的是我找不到关于第四个(USB 序列号)的任何信息。

我通过调用以下命令打印了整本词典: …

macos disk objective-c

5
推荐指数
0
解决办法
1159
查看次数

标签 统计

disk ×1

macos ×1

objective-c ×1