Disk cocoa如何获取已装入的不可卸载磁盘

Disk cocoa如何获取已装入的不可卸载磁盘,disk,mount,nsworkspace,Disk,Mount,Nsworkspace,NSWorkspaceDidMountNotification可以很好地获取刚刚装入的磁盘的信息。 但是,在我的应用程序启动之前,我如何获取已安装磁盘的信息 命令行:“diskutil list”和“diskutil info/”可以工作,但应该有一个简单的编程方法 “DiskArbitration”或“VolumeToBSDNode示例”的搜索结果不起作用,IOkit困难 顺便说一句,有人推荐使用这个吗? [NSWorkspace GetFileSystemInfoPath:isRemovab

NSWorkspaceDidMountNotification可以很好地获取刚刚装入的磁盘的信息。 但是,在我的应用程序启动之前,我如何获取已安装磁盘的信息

命令行:“diskutil list”和“diskutil info/”可以工作,但应该有一个简单的编程方法

“DiskArbitration”或“VolumeToBSDNode示例”的搜索结果不起作用,IOkit困难

顺便说一句,有人推荐使用这个吗? [NSWorkspace GetFileSystemInfoPath:isRemovable:isWritable:isUnmountable:description:type://如何

编辑:下面是一段代码,介绍如何使用它获取可移动驱动器及其卷名

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);
  }
}

嗨,伍迪,格雷特!!!!它几乎就是这样的:NSArray*结果=[testM mountedVolumeURLsIncludingResourceValuesForKeys:nil选项:NSVolumeEnumerimentSkipedEnvolumes];但找不到哪一个是可拆卸的,哪一个是本地的。如何将它们转换成“HP v125w”这样的磁盘名?"file://localhost/Volumes/HP%20v125w/“尝试此操作时运气不佳:NSArray*proA=[NSArray arrayWithObjects:NSURLVolumeIdentifierKey,NSURLTypeIdentifierKey,nil];NSArray*结果=[testM mountedVolumeURLsIncludingResourceValuesForKeys:proA选项:NSVolumeEnumerimentsSkiphiddenVolumes];目前没有访问xCode的权限,但是你能试试吗?是的,代码可以工作!这150英镑归你所有。再一次确认:我们是否应该使用选项:NSVolumeEnumerationSkipHiddenVolumes而不是选项:0?@JiulongZhao感谢您的代表。据我所知,隐藏卷通常不会被装入,装入它们需要相当多的努力。恢复HD分区就是一个例子。跳过它们应该是安全的,除非你有理由不这样做。