NSWorkspaceDidMountNotification可以很好地获取刚挂载的磁盘信息。但是,在我的应用程序启动之前,我如何获得已经挂载磁盘的信息?
命令行:"diskutil list"one_answers"diskutil info/"工作,但应该有一个简单的编程方法。
搜索"DiskArbitration"或"VolumeToBSDNode示例"的结果不工作,很困难。
顺便说一句,有人推荐使用这个吗?[NSWorkspace getFileSystemInfoForPath: isRemovable: isWritable: isUnmountable:描述:类型:]
[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);
}
}