Jiu*_*hao 2 mount disk nsworkspace
NSWorkspaceDidMountNotification可以很好地获取刚安装的磁盘的信息.但是,如何在应用程序启动之前获取已安装磁盘的信息?
命令行:"diskutil list"和"diskutil info /"有效,但应该有一个简单的编程方法.
搜索结果"DiskArbitration"或"VolumeToBSDNode示例"不起作用,IOkit很难.
BTW,有人推荐使用这个吗?[NSWorkspace getFileSystemInfoForPath:isRemovable:isWritable:isUnmountable:description:type:]
怎么样[NSFileManager mountedVolumeURLsIncludingResourceValuesForKeys:options:]?
编辑:这是一段代码,用于说明如何使用它来获取可移动驱动器及其卷名.
NSArray *keys = [NSArray arrayWithObjects:NSURLVolumeNameKey, NSURLVolumeIsRemovableKey, nil];
NSArray *urls = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:keys options:0];
for (NSURL *url in urls) {
NSError *error;
NSNumber *isRemovable;
NSString *volumeName;
[url getResourceValue:&isRemovable forKey:NSURLVolumeIsRemovableKey error:&error];
if ([isRemovable boolValue]) {
[url getResourceValue:&volumeName forKey:NSURLVolumeNameKey error:&error];
NSLog(@"%@", volumeName);
}
}
Run Code Online (Sandbox Code Playgroud)