Как найти установленный диск на Mac

То, что я на самом деле пытался достичь, - выяснить, когда диск, который я установил из сети, отключен. Для чего я начал с очень простого подхода, я использовал:

повышение:: файловая система:: существует

на установленном пути диска (который мы можем найти в /Volumes/ ). например для привода на компьютере: СМБ://XYZ/привод после монтажа, я вижу это как: /Volumes/ привод и позже был диск, на котором я использовал boost:: filesystem:: exists,

Итак, я надеялся, как только отключу сеть, смонтированный том внутри/Объемы будут немедленно очищены, и все будет работать просто.

НО, позже я понимаю, что при отключении сети OSX берет навсегда, чтобы очистить диск из каталога /Volumes.

Есть ли API-интерфейс apple, который может определить, является ли суммарный объем, который появляется в/Томах, действительным или нет.

Спасибо заранее.

Ответ 1

В NSFileManager есть метод, который позволяет легко просматривать смонтированные тома:

- (NSArray*) mountedVolumeURLsIncludingResourceValuesForKeys:option - Возвращает массив URL-адресов, которые идентифицируют смонтированные тома, доступные на компьютере.

Я не знаю, как это относится к застопорившимся монстрам. Вам также необходимо выяснить, являются ли эти смонтированные тома сетевыми томами или образами дисков.

Если вы хотите получать уведомления, когда тома приходят и уходят, вы можете использовать API событий файловой системы. Это немного более низкий уровень, но вы можете в основном попросить его "уведомить меня, когда изменится структура под /Volumes/*.

Ответ 2

Вы хотите NSWorkspace уведомления:

  • NSWorkspaceDidRenameVolumeNotification
  • NSWorkspaceDidMountNotification
  • NSWorkspaceWillUnmountNotification
  • NSWorkspaceDidUnmountNotification

Последние три уведомления содержат ключ @"NSDevicePath" в словаре userInfo. Пока WillUnmount не отправляется, если устройство принудительно удалено, DidUnmount делает. Используя комбинацию из двух, вы можете получить надлежащее предупреждение для "приятных отключений" томов сети для обработки вещей в идеальном сценарии, но во всех случаях у меня никогда не было реальных проблем, связанных с DidUnmount, чтобы сказать мне объем исчез. Я использую это в коде доставки в приложении, которое отсутствовало с 2003 года.