cocoa - 如何使用 cocoa/obj-c 从挂载目录获取服务器主机名?

标签 cocoa macos path mount hostname

目前,当我使用程序打开文件时,我可以通过单击 NSOpenPanel 侧边栏中的服务器名称,然后选择文件来选择服务器上的文件。没问题,只要安装了共享目录,就可以很好地使用该文件。我得到类似“/Volumes/SHARENAME/filename.bla”的路径。

我的问题是如何获取它来自的计算机的服务器主机名。例如,如果我在 NSOpenPanel 中的“Shared”下单击名称为 SERVERNAME 的设备,如何从“/Volumes/SHARENAME/filename.bla”获取 SERVERNAME。

我查阅了相当多的文档,但无法找到解决此问题的方法。

对此的任何帮助将不胜感激。谢谢。

最佳答案

这不是 Objective-C 的方法,但有时使用 popen(..) 可以让您获取可以从 unix 命令解析的信息。

示例

#include <stdio.h>
#include <string.h>

int main() {
  FILE *fp = popen("df", "r"); // see man page for df
  if (fp) {
    char line[4096];
    while (line == fgets(line, 4096, fp)) {
      if (strstr(line, "/Volumes/SHARENAME")) { // You need the mount point
        char host[256];
        sscanf(line, "%s", host);
        printf("Connected: %s\n", host);
      }
    }
    pclose(fp);
  }
  return 0;
}

关于cocoa - 如何使用 cocoa/obj-c 从挂载目录获取服务器主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2580253/

相关文章:

python - pipenv shell 无法创建虚拟环境

c++ - 如何获取 %AppData% 路径作为 std::string?

objective-c - 使用 Cocoa 渲染像素缓冲区

objective-c - NSTextField 在哪里?

cocoa - iPhone、Mac OS 开发和 IBOutlets

macos - 如何将 Mac 变成 iBeacon

Android Studio 找不到 Node :6. 7.0。麦克迷你 M1

objective-c - NSMutableArray - 强制数组只保存特定的对象类型

path - 如何避免在 ksh 中重复路径变量

asp.net - ASP.NET/IIS 上的相对和绝对路径