我实际上想要实现的是找出我从网络安装的驱动器何时断开连接。 为此,我从一个非常简单的方法开始,我使用了:
boost::文件系统::存在
在驱动器的安装路径上(我们可以在/Volumes/中找到)。 例如对于计算机上的驱动器: smb://XYZ/驱动器 安装后,我可以看到它像: /卷/驱动器 后者是我使用 boost::filesystem::exists 的驱动器,
所以我希望一旦断开网络,/Volumes 中安装的卷将立即被清除,一切都会简单地进行。
但是, 后来我意识到,在网络断开时,OSX 需要很长时间才能从/Volumes 目录中清除驱动器。
是否有苹果 API 可以判断出现在/Volumes 中的数量是否有效。
提前致谢。
最佳答案
NSFileManager
上有一个方法可以让您轻松查看已挂载的卷:
- (NSArray*) mountedVolumeURLsIncludingResourceValuesForKeys:option
- Returns an array of URLs that identify the mounted volumes available on the computer.
虽然我不知道这如何处理停滞的坐骑。您还需要查明这些安装的卷是网络卷还是磁盘镜像。
如果您想要在交易量来来去去时收到通知,您可以使用 File System Events API .它的级别更低一些,但您基本上可以要求它“在 /Volumes/*
下的结构发生变化时通知我。
关于c++ - 如何查找已安装的驱动器是否确实存在于 Mac 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29475490/