2016-04-01 4 views
0

ile paylaşılan paylaşımın görünen adını Bulucu Başka bir Mac'teki bir paylaşım sürücüsüne bağlanmak için bir komut satırı uygulaması yazmaya çalışıyorum. Aşağıdaki kod paylaşımı birleştiriyor ancak Finder'ın sol panelindeki Paylaşılan bölümünde görünen ana bilgisayar adını işlemek için bir yol bulamıyorum. Uzak bilgisayarın ana makine adının computer olduğunu varsayarak, bu kodu kullanarak computer ve computer.local göstermesini istiyorum. MDNS ana bilgisayar adını kullanarak bağlanmak için bir gerekliliktir. kNetFSServerDisplayNameKey ve kNetFSDisplayNameKey anahtarlarını ayarlamayı denedim ancak Finder'da gösterilenleri etkilemiyor gibi görünmüyor.NetFSMountURLSync

Kodu: Ben Finder kullanarak montaj sonrasında hacmine bilgi işaretleyerek bu anladım

NSString *target = @"smb://computer.local/share"; 
NSString *mountPath = @"/Volumes/share"; 
CFStringRef servername = (CFStringRef) @"computer"; 

CFMutableDictionaryRef mount_options = CFDictionaryCreateMutable(NULL, 0, NULL, NULL); 
CFDictionarySetValue(mount_options, kNetFSSoftMountKey, kCFBooleanTrue); 
CFDictionarySetValue(mount_options, kNetFSMountAtMountDirKey, kCFBooleanTrue); 
CFDictionarySetValue(mount_options, kNetFSServerDisplayNameKey, servername); 
CFDictionarySetValue(mount_options, kNetFSDisplayNameKey, servername); 
CFArrayRef mountpoints = NULL; 

CFStringRef login = (__bridge CFStringRef) @"login"; 
CFStringRef pass = (__bridge CFStringRef) @"pass"; 

OSStatus err = NetFSMountURLSync(
           (__bridge CFURLRef) [NSURL URLWithString: target], // URL to mount, e.g. nfs://server/path 
           (__bridge CFURLRef) [NSURL URLWithString: mountPath], // Path for the mountpoint 
           login,            // Auth user name (overrides URL) 
           pass,            // Auth password (overrides URL) 
           NULL,            // Options for session open (see below) 
           mount_options,         // Options for mounting (see below) 
           &mountpoints);         // Array of mountpoints 

cevap

0

. Paylaşım aracılığıyla paylaştığınız zaman, birim için Get Info (Bilgi Al) içindeki Sunucu alanı smb://computer._smb._tcp.local/share olur. Yukarıdaki kodda smb://computer.local/share yerine bu URL'yi kullanmak, computer.local değil, bulucuda sol Paylaşılan panelde gösterilen computer sonucunu verir.