Macos 卸载网络卷?
如何卸载网络卷Macos 卸载网络卷?,macos,networking,volumes,unmount,Macos,Networking,Volumes,Unmount,如何卸载网络卷 NSWorkspace认为它们既不是可移动的,也不是不可移动的unmountAndEjectDeviceAtPath:@“/Volumes/有问题的网络卷”不会导致任何事情发生。也许有一些简单的方法可以做到这一点,坐在我的鼻子底下,但我找不到它 我不想求助于制作一个Applescript,告诉查找程序弹出网络卷,然后从Cocoa调用它,因为这太令人讨厌了 (顺便说一句,我的开发平台是Tiger)正在调用公平游戏吗?(奇怪的是,大多数Unix系统将系统调用命名为umount(),而
NSWorkspace
认为它们既不是可移动的,也不是不可移动的unmountAndEjectDeviceAtPath:@“/Volumes/有问题的网络卷”
不会导致任何事情发生。也许有一些简单的方法可以做到这一点,坐在我的鼻子底下,但我找不到它
我不想求助于制作一个Applescript,告诉查找程序弹出网络卷,然后从Cocoa调用它,因为这太令人讨厌了
(顺便说一句,我的开发平台是Tiger)正在调用公平游戏吗?(奇怪的是,大多数Unix系统将系统调用命名为umount()
,而不是unmount()
,尽管名称和概要部分使用unmount()
相当清楚,但手册页经常将其命名为umount()
)
这个挂架还有其他用途吗?检查
lsof(1)
或fuser(1)
输出,查看哪些进程(如果有的话)当前打开了该文件系统。(可能在卸载调用之前添加一个简单的chdir(“/”;
)您还可以使用diskutil,它处理的情况比卸载()多:
注意装载点周围的双引号,很可能类似于
/Volumes/Untitled
,也可能类似于/Volumes/NO NAME
您是否正在尝试以编程方式卸载Objective-C中的设备?如果是这样,请在你的问题中更清楚地说明这一点,因为你的问题现在读起来不像是编程问题。是的!谢谢大家!<代码>卸载(“/Volumes/theVolume”,0)工作正常。真的很容易,就在我眼前。嗯。阅读您的答案后,我还发现终端命令umount/Volumes/theVolume
或简单地umountthevolume
也可以使用NSTask
通过cococoa执行,但是unmount()
要整洁得多。愚蠢的NSWorkspace
。嘘。
std::string command = std::string("diskutil unmount \"") + currentMountPoint + "\"";
int ret = system( command.c_str() );