Mac +外部驱动器无法识别为可移动存储

时间:2009-11-10 00:16:56

标签: macos removable-drive

我有一个外部1TB驱动器,我的程序无法将其识别为可移动存储设备。

我的代码中包含以下行,用于检测连接到机器的可移动驱动器。

NSArray * removableDrivesPaths = [[NSWorkspace sharedWorkspace] mountedRemovableMedia];

请你们告诉我一种方法,让我的外部驱动器被检测为可移动存储设备,或者是否有任何其他可可框架功能可以用来将我的外部驱动器检测为可移动存储设备。

由于

3 个答案:

答案 0 :(得分:1)

“可移动”介质是物理上与其放置在其中的驱动器不同的介质 - 即软盘或CD驱动器。所以这是正确的,不返回外部硬盘驱动器。不过,我不确定如何找到你想要的信息。

答案 1 :(得分:1)

从OS X 10.7开始,NSURL API有两个键NSURLVolumeIsLocalKeyNSURLVolumeIsInternalKey。外部驱动器应该是本地的,而不是内部的。此外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下的驱动器。