我有一个外部 1TB 驱动器,我的程序没有将其识别为可移动存储设备。
我的代码中有以下几行来检测连接到机器的可移动驱动器。
NSArray *removableDrivesPaths = [[NSWorkspace sharedWorkspace]mountedRemovableMedia];
请你们告诉我一种让我的外部驱动器被检测为可移动存储设备的方法,或者是否有任何其他可可框架功能可用于将我的外部驱动器检测为可移动存储设备。
谢谢
我有一个外部 1TB 驱动器,我的程序没有将其识别为可移动存储设备。
我的代码中有以下几行来检测连接到机器的可移动驱动器。
NSArray *removableDrivesPaths = [[NSWorkspace sharedWorkspace]mountedRemovableMedia];
请你们告诉我一种让我的外部驱动器被检测为可移动存储设备的方法,或者是否有任何其他可可框架功能可用于将我的外部驱动器检测为可移动存储设备。
谢谢
“可移动”媒体是一种在物理上与其所在的驱动器不同的媒体,即软盘或CD 驱动器。所以这是正确的不返回外部硬盘驱动器。不过,我不确定您将如何找到所需的信息。
从 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]);
}
不确定您要做什么,但如果您只想从设备访问文件,它应该显示为 /Volumes 下的驱动器。