[NSWorkSpace sharedWorkSpace]
killerdemouches
Membre
Bonjour,
Je n'ai pas trouvé de forums très adapté pour mon problème, alors je pose la question ici. Est ce que quelqu'un a réussi à utiliser [[NSWorkSpace sharedWorkSpace] unmountAndEjectDeviceAtPath:@/Volumes/NO_NAME];
Chez moi, ca renvoie toujours NO (0), et ça ne fait rien. Rien n'est envoyé dans la console. J'ai essayé avec un partage SMB, un partage AFP, et un disque externe FireWire.
Si cela ne fonctionne pas, y a-t il une solution complémentaire ? Apple Script permet de le faire, mais avec le nom du volume (et non le chemin).
Je n'ai pas trouvé de forums très adapté pour mon problème, alors je pose la question ici. Est ce que quelqu'un a réussi à utiliser [[NSWorkSpace sharedWorkSpace] unmountAndEjectDeviceAtPath:@/Volumes/NO_NAME];
Chez moi, ca renvoie toujours NO (0), et ça ne fait rien. Rien n'est envoyé dans la console. J'ai essayé avec un partage SMB, un partage AFP, et un disque externe FireWire.
Si cela ne fonctionne pas, y a-t il une solution complémentaire ? Apple Script permet de le faire, mais avec le nom du volume (et non le chemin).
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
fonctionne bien pourtant :-\\ ...tu n'aurais pas des fichiers restés ouvert ?
Je poursuis donc mes investigations...
Mon disque externe s'appelle Test. Il faut changer le nom du disque dans Controller.m.
Je fais sûrement une boulette quelquepart...
[Fichier joint supprimé par l'administrateur]
Tron projet ne semble pas comporter d'erreur.
En tous cas chez moi il éjecte sans problème et me renvoie 1 comme réponse.
Par contre n'est tu pas en train d'essayer d'ejecter un disque dur externe ?
Car je crois qu'il y a une subtilité entre un volume ejectable (iPod, un CD, ou dmg monté) et un volume démontable mais non éjectable comme un dd externe....
La méthode: mountedRemovableMedia te listera tous les volumes qui obéiront à ton projet (et tu devrais pas y voir le DD Externe )
Mais tu peux t'en sortir via l'API de Carbon : FSUnmountVolumeSync.
Je glisse le projet "Cocoa&Carbon" en attachement .. (on a souvent tendance à les opposer, mais finalement elles sont complémentaires)
[Fichier joint supprimé par l'administrateur]
Merci beaucoup à tous pour votre dévouement!
Apparemment l'API carbon ne fonctionne que pour les volumes physiques. En tout cas ça échoue avec mon partage SMB :-(
Il doit bien exister un autre moyen qu'AppleScript pour ejecter ces volumes réseau, non?
Utilise NSAppleScript avec le bout de code AS voulu et executes le.
C'est surement moins satisfaisant que de rester purement Cocoa mais ça devrait pas vraiement ralentir ton appli non ?
Sinon t'as unmount sous BSD peut-être ?
En fait je travaille sur une amélioration de SMB Manager qui utilisait de l'Apple Script. Le problème c'est qu'Apple Script permet de démonter un volume en fonction de son nom, et non en fonction de son point de montage ce qui pose problème lorsque l'on monte plusieurs volumes qui ont le même nom.
Je vais essayer avec les appels BSD... J'espère juste des les notifications seront générées
Ici j'arrive à démonter un volume distant qu'il soit SMB ou AFP via Carbon ... Pour essayer d'identifier ton souci, peux-tu monter le volume et faire les essais :Â
1. que donne un :
ls -al /Volumes/
2. la commande umount fonctionne sur le volume SMB ?
3 . Quelle valeur de renvoie la fonction FSUnmountVolumeSync ? 0 ? -47 ?