Внешний диск Mac + не распознается как съемный носитель

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

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

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

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

Спасибо

3 ответа

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

Начиная с 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.

Другие вопросы по тегам