Как получить имя хоста сервера из смонтированного каталога с помощью cocoa / obj-c? - PullRequest
1 голос
/ 05 апреля 2010

В настоящее время, когда я открываю файл с помощью своей программы, я могу выбрать файлы на сервере, щелкнув имя сервера на боковой панели в NSOpenPanel, а затем выбрав файл. Нет проблем, это прекрасно работает для использования файла, если общий каталог смонтирован. Я получаю путь типа "/Volumes/SHARENAME/filename.bla".

Мой вопрос: как мне получить имя хоста сервера, с которого он пришел? Например, если я щелкнул устройство с именем SERVERNAME в разделе «Shared» в NSOpenPanel, как мне получить SERVERNAME из «/Volumes/SHARENAME/filename.bla".

Я просмотрел довольно много документации и не смог найти решение этой проблемы.

Любая помощь в этом направлении будет принята с благодарностью. Спасибо.

1 Ответ

0 голосов
/ 05 апреля 2010

Это не способ 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;
}
...