Внешний диск Mac + не распознается как съемный носитель - PullRequest
0 голосов
/ 10 ноября 2009

У меня есть внешний накопитель емкостью 1 ТБ, который моя программа не распознает как съемное устройство хранения.

В моем коде есть следующие строки для обнаружения съемных дисков, подключенных к машине.

NSArray * removeableDrivesPaths = [[NSWorkspace sharedWorkspace] mountRemovableMedia];

Не могли бы вы, ребята, подсказать мне способ обнаружения моих внешних дисков в качестве съемных устройств хранения или, если есть какая-либо другая функция инфраструктуры какао, которую я могу использовать для обнаружения моих внешних дисков в качестве съемных устройств хранения.

Спасибо

Ответы [ 3 ]

1 голос
/ 10 декабря 2009

«Съемный» носитель - это тот, который физически отличается от дисковода, в который он помещен - то есть дисковода для гибких дисков или компакт-диска. Так что это правильно, если не возвращать внешние жесткие диски. Однако я не уверен, как вы будете искать нужную информацию.

1 голос
/ 25 февраля 2013

Начиная с OS X 10.7, API NSURL имеет два ключа 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]);
}
0 голосов
/ 10 ноября 2009

Не уверен, что вы пытаетесь сделать, но если вы просто хотите получить доступ к файлам с устройства, он должен отображаться как диск в /Volumes.

...