Какао: обнаружить не монтируемый объем - PullRequest
1 голос
/ 12 августа 2010

Я, ребята,

Я занимаюсь разработкой небольшого приложения, которое сможет размонтировать тома.

В настоящее время я использую следующий код, чтобы определить, является ли том не монтируемым или нет:

BOOL isRemovable, isWritable, isUnmountable;
NSString *description, *type;

BOOL succ = [ws getFileSystemInfoForPath:[itemInfo objectForKey:@"path"]
                isRemovable:&isRemovable
                isWritable:&isWritable
                isUnmountable:&isUnmountable
                description:&description
                type:&type];

Проблема в том, что только физически съемные тома, такие как CD или DVD, получают флаг isUnmountable = YES. USB-устройства этого не делают, хотя они тоже не монтируются.

У вас, ребята, есть решение для этого?

---- Редактировать

Я попробовал это с другой флешкой, отформатированной в FAT. К моему Mac подключены 2 жестких USB-диска, которые не монтируются с помощью Finder или Disk Utility - они отформатированы в HFS. Я создал вывод, который использует код сверху:

/, hfs, не монтируется: НЕТ, съемный: НЕТ
/ Объемы / Слон, hfs, не монтируется: НЕТ, съемный: НЕТ
/ Объемы / Машина времени, hfs, не монтируется: НЕТ, съемная: НЕТ
/ Тома / USBSTICK, msdos, не монтируется: ДА, съемный: ДА

Похоже, что метод возвращает YES, только если устройство отформатировано в FAT или MSDOS. Это странно, потому что другие 2 (Elephant, Time Machine) - это тома, которые подключены через USB и должны быть съемными и не монтируемыми. Есть ли другой способ получить эту информацию или я сделал что-то не так в своем коде?

-

Привет

Marco

1 Ответ

1 голос
/ 12 августа 2010

Используя ваш точный код, с моей собственной флешкой (1 Гб Cruzer - да, я знаю, что я позади), я получаю ДА за isRemovable.

Хотя BOOL обычно представляется как ДА или НЕТ, ИСТИНА работает. Чтобы убедиться, я тоже это проверил. Я получаю isRemovable == TRUE / YES каждый раз.

Таким образом, поскольку условие «может быть демонтировано / удалено» может зависеть от того, действительно ли что-то использует ресурс на томе, вероятно, именно это мешает этому методу ответить «продолжайте и отключите его». Больше контекста в вашем вопросе может помочь определить это.

...