Определить, когда съемное хранилище отключено

Я работаю над приложением, которое должно обнаруживать события, которые происходят, когда съемное хранилище отключено или принудительно отключено от USB. Как я могу получить эти события?

я видел NSWorkspace для первой возможности плавного размонтирования устройства, но этот класс имеет такие методы, как -unmountAndEjectDeviceAtPath: размонтировать устройство. Может кто-нибудь указать мне пример кода, который обнаруживает несмонтированные тома?

2 ответа

Часть кода от HardwareGrowler:

NSWorkspace *workspace = [NSWorkspace sharedWorkspace];
NSNotificationCenter *center = [workspace notificationCenter];

[center addObserver:[VolumeNotifier class] selector:@selector(volumeDidMount:) name:NSWorkspaceDidMountNotification object:nil];
[center addObserver:[VolumeNotifier class] selector:@selector(volumeDidUnmount:) name:NSWorkspaceDidUnmountNotification object:nil];
[center addObserver:[VolumeNotifier class] selector:@selector(volumeWillUnmount:) name:NSWorkspaceWillUnmountNotification object:nil];

Затем вам нужно реализовать методы реагирования на уведомления аля

+ (void) volumeDidUnmount:(NSNotification *)aNotification;
{
...
}

Для полной реализации посмотрите http://growl.info/source.php В пакете Source перейдите к Extras/HardwareGrowler и там посмотрите VolumeNotifier.h/m

ОБНОВИТЬ:

Петерс ответ превосходит это. Пожалуйста, рассмотрите возможность использования дискового арбитража, если вы столкнулись с этой проблемой.

Используйте DARegisterDiskDisappearedCallback функция в рамках дискового арбитража.

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