1

如何卸载网络卷?

NSWorkspace认为它们既不可移动也不不可安装。unmountAndEjectDeviceAtPath: @"/Volumes/the network volume in question"不会导致任何事情发生。可能有一些简单的方法可以做到这一点,坐在我的鼻子下面,但我找不到。

我不想诉诸于制作一个 Applescript 告诉 Finder 弹出网络卷并从 Cocoa 调用它,因为这实在是太恶心了。

(顺便说一下,我的开发平台是 Tiger)

4

2 回答 2

0

unmount(2)公平游戏吗?(奇怪的是,大多数 Unix 系统将系统调用命名为umount(),而不是unmount(),并且手册页经常调用它,umount()尽管名称和概要部分相当清楚地使用unmount()。)

坐骑是否被其他人使用?检查lsof(1)fuser(1)输出以查看当前打开该文件系统的进程(如果有)。(也许chdir("/");在你的 unmount 调用之前添加一个简单的就可以了?)

于 2011-09-27T02:15:22.880 回答
0

您还可以使用 diskutil 处理比 unmount() 更多的情况:

std::string command = std::string("diskutil unmount \"") + currentMountPoint + "\"";
int ret = system( command.c_str() );

注意挂载点周围的双引号,很可能类似于/Volumes/Untitled,但也类似于/Volumes/NO NAME

于 2014-02-06T06:05:14.273 回答