كيف أحصل على اسم مضيف الخادم من دليل مثبت مع الكاكاو/OBJ-C؟

StackOverflow https://stackoverflow.com/questions/2580253

سؤال

حاليًا عندما أقوم بفتح ملف مع برنامجي ، يمكنني تحديد الملفات على خادم بالنقر فوق اسم الخادم في الشريط الجانبي في nsopenpanel ثم تحديد الملف. لا مشكلة ، هذا يعمل بشكل جيد لاستخدام الملف طالما تم تركيب الدليل المشترك. أحصل على مسار مثل "/volumes/sharename/filename.bla".

سؤالي هو كيف أحصل على اسم مضيف الخادم للكمبيوتر الذي جاء منه. على سبيل المثال ، إذا قمت بالنقر فوق الجهاز باستخدام اسم ServerName ضمن "مشترك" في nsopenpanel ، فكيف أحصل على serverName من "/volumes/sharename/filename.bla".

لقد نظرت إلى الكثير من الوثائق ولم أتمكن من العثور على حل لهذه المشكلة.

أي مساعدة نحو هذا سيكون موضع تقدير كبير. شكرًا لك.

هل كانت مفيدة؟

المحلول

هذه ليست طريقة موضوعية للقيام بذلك ولكن في بعض الأحيان تستخدم 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;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top