我有一个外部1TB驱动器,我的程序无法将其识别为可移动存储设备。
我的代码中包含以下行,用于检测连接到机器的可移动驱动器。
NSArray * removableDrivesPaths = [[NSWorkspace sharedWorkspace] mountedRemovableMedia];
请你们告诉我一种方法,让我的外部驱动器被检测为可移动存储设备,或者是否有任何其他可可框架功能可以用来将我的外部驱动器检测为可移动存储设备。
由于
答案 0 :(得分:1)
答案 1 :(得分:1)
从OS X 10.7开始,NSURL API有两个键NSURLVolumeIsLocalKey
和NSURLVolumeIsInternalKey
。外部驱动器应该是本地的,而不是内部的。此外NSURLVolumeIsInternalKey
必须不是nil
(对于已装入的磁盘映像,它是零)。
NSError *error;
NSArray *resourceKeys = @[NSURLVolumeIsLocalKey, NSURLVolumeIsInternalKey];
NSDictionary *valuesDict = [volumeURL resourceValuesForKeys:resourceKeys error:&error];
if (valuesDict != nil) {
NSNumber *isLocal = valuesDict[NSURLVolumeIsLocalKey];
NSNumber *isInternal = valuesDict[NSURLVolumeIsInternalKey];
if (isLocal != nil && isInternal != nil) {
BOOL isExternal = [isLocal boolValue] && ![isInternal boolValue];
NSLog(@"Drive external: %d", isExternal);
}
} else {
NSLog(@"Error getting resource for volume URL: %@", [error localizedDescription]);
}
答案 2 :(得分:0)
不确定您要做什么,但如果您只是想从设备访问文件,它应该显示为/ Volumes下的驱动器。