首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测何时卸载可移动存储

检测何时卸载可移动存储
EN

Stack Overflow用户
提问于 2009-09-10 23:17:49
回答 2查看 2K关注 0票数 4

我正在开发一款应用程序,当可移动存储设备被卸载或从USB上强制拔出时,该应用程序应检测到发生的事件。如何接收这些事件?

我第一次看到NSWorkspace可以平滑地卸载设备,但是这个类有像-unmountAndEjectDeviceAtPath:这样的方法来卸载设备。谁能给我介绍一些检测未挂载卷的示例代码?

EN

回答 2

Stack Overflow用户

发布于 2009-09-11 10:30:45

来自HardwareGrowler的一小段代码:

代码语言:javascript
复制
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];

然后,您需要实现对通知做出反应的方法

代码语言:javascript
复制
+ (void) volumeDidUnmount:(NSNotification *)aNotification;
{
...
}

对于整个实现,请查看源包中的http://growl.info/source.php,转到Extras/HardwareGrowler,然后在那里查看VolumeNotifier.h/m

更新:

彼得斯的回答比这更好。如果你遇到这个问题,请考虑使用磁盘仲裁框架。

票数 10
EN

Stack Overflow用户

发布于 2009-09-11 03:29:52

the Disk Arbitration framework中使用the DARegisterDiskDisappearedCallback function

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1408216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档