【问题标题】:How to get mount point information from an API on Mac?如何从 Mac 上的 API 获取挂载点信息?
【发布时间】:2015-09-11 01:43:13
【问题描述】:

当我发出mount 命令时,我得到如下条目:

//abc@host/b1 on /Volumes/b1 (smbfs, nodev, nosuid, mounted by abc)
//abc@host/b2 on /Volumes/b2 (smbfs, nodev, nosuid, mounted by abc)

这些表明我安装了两个 samba 共享。

我不想尝试解析mount 命令输出,但我确实想检索附加文件系统的挂载点,尤其是来自 samba。

Mac 上是否有 API 允许我在 C、shell 或 Python 等中执行此操作?

【问题讨论】:

  • 您的语言列表中没有包含 Objective-C 或 Swift。这些可以接受吗?
  • 是的,拜托!级别越高越好,但在这一点上,我正在寻找任何方法来完成这项工作。

标签: macos api mount


【解决方案1】:

您可以使用以下方法获得已安装卷的 URL 数组:

NSArray* keys = @[ /* ... */ ];
NSArray* urls = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:keys
                                                                                        options:NSVolumeEnumerationSkipHiddenVolumes];

我马上就到keys 数组。获得这些 URL 后,您可以使用 NSURL 的“资源值”API 获取有关它们的信息。您可以使用-[NSURL getResourceValue:forKey:error:] 获得单个值。您可以使用-resourceValuesForKeys:error: 一次获得多个。您可以通过在传递给上述NSFileManager 方法的keys 数组中指定您感兴趣的任何值来优化它们的获取。

对于使用网络共享可能很重要的一个键是NSURLVolumeURLForRemountingKey。其他键在NSURL 文档中列出。命令键和音量键都适用。

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多