3

如何确定已安装的设备是否可以卸载/弹出?

我试图在NSFileManager.

NSArray *keys = [NSArray arrayWithObjects:NSURLVolumeNameKey, NSURLVolumeURLForRemountingKey, NSURLVolumeIsEjectableKey, 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];
[url getResourceValue:&volumeName forKey:NSURLVolumeNameKey error:&error];

NSLog(@"Standard Device : %@ - Removable: %c", volumeName, [isRemovable boolValue]);

}

但是当我遍历列表时,我总是得到这个,例如:

Standard Device Name: My Book - isEjectable:

仅供参考,“我的书”是一个 USB 驱动器。

我希望有人能指出什么是错的。

谢谢

4

1 回答 1

3

你想要的NSURLVolumeIsEjectableKey不是NSURLVolumeIsRemovableKey

NSURLVolumeIsRemovableKey表示可以从设备中物理移除介质。 NSURLVolumeIsEjectableKey表示可以卸载卷。

于 2013-04-19T15:53:25.770 回答