如何使用cocoa / obj-c从已安装的目录中获取服务器主机名?

时间:2010-04-05 18:34:12

标签: cocoa macos path mount hostname

目前,当我使用我的程序打开文件时,我可以通过单击NSOpenPanel侧栏中的服务器名称然后选择文件来选择服务器上的文件。没问题,只要挂载共享目录,这适用于使用该文件。我得到一个像“/Volumes/SHARENAME/filename.bla”这样的路径。

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

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

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

1 个答案:

答案 0 :(得分:0)

这不是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;
}