这个问题说明了一切。如何从代表例如可移动媒体的 NSURL 获取块设备?我想从中得到/Volumes/MyDevice
类似的东西/dev/disk2
。我想知道如果不使用 IOKit 框架是否可以做到这一点!任何帮助表示赞赏。
问问题
312 次
1 回答
2
DiskArbitration.framework将带您到那里:
NSURL *volumeURL = [NSURL fileURLWithPath:@"/Volumes/YourDisk"];
DASessionRef session = DASessionCreate(kCFAllocatorDefault);
DADiskRef disk = DADiskCreateFromVolumePath(kCFAllocatorDefault,
session,
(__bridge CFURLRef)volumeURL);
NSDictionary *desc = CFBridgingRelease(DADiskCopyDescription(disk));
/* See DADisk.h for a list of available keys */
NSLog(@"%@", desc[(NSString *)kDADiskDescriptionMediaBSDNameKey]);
CFRelease(disk);
CFRelease(session);
struct statfs s;
statfs([[volumeURL path] fileSystemRepresentation], &s);
printf("%s\n", s.f_mntfromname);
于 2013-04-26T16:29:01.437 回答