2010-07-30 4 views

Répondre

3

se trouve qu'il ya une ancienne fonction de carbone (ne peut pas trouver un équivalent de cacao) appelé FSMountServerVolumeSync qui fait ce que je cherchais. Vous pouvez fournir et smb:// URL et informations d'identification de connexion.

File Manager Reference

OSStatus FSMountServerVolumeSync (
    CFURLRef url, 
    CFURLRef mountDir, 
    CFStringRef user, 
    CFStringRef password, 
    FSVolumeRefNum *mountedVolumeRefNum, 
    OptionBits flags 
); 
1

Ce n'est peut-être pas le meilleur chemin, mais ne pouvez-vous pas utiliser mount?

+0

Pour un serveur distant (comme 'smb: //')? Je suis assez sûr que 'mount' est pour les périphériques locaux seulement. – eduffy

+0

Fonctionne sur Linux au moins - vous le spécifiez comme //server.name/share/path/to/folder –

3

Un moyen facile consiste simplement à exécuter du code applescript. Je vais vous montrer 2 choix. Ce premier est la façon standard d'afficher cette fenêtre du Finder à partir d'applescript.

NSString* cmd = @"choose URL"; 

La fenêtre qui est bare-bones, donc vous pouvez réellement ouvrir la fenêtre du Finder avec cette commande ...

NSString* cmd = @"tell application \"Finder\" to activate\ndelay 0.2\ntell application \"System Events\" to keystroke \"k\" using command down"; 

Après avoir choisi l'une des chaînes « de cmd », vous pouvez exécuter que le code AppleScript avec ce ...

NSAppleScript* theScript = [[NSAppleScript alloc] initWithSource:cmd]; 
[theScript executeAndReturnError:nil]; 
[theScript release]; 
+0

Cela fonctionne, mais votre script a mal saisi "application" après "delay 0.2". – Marku

Questions connexes