可可豆如何获得已经挂载的不可挂载磁盘



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

最新更新