Question

Compte tenu d'un chemin, sous Mac OS X, est-il un moyen de dire qu'il est un CD ou un DVD monté, par opposition à un répertoire régulier, un fichier régulier, ou monté DMG ou tout autre type de fichier pouvant être monté? Plus précisément, je voudrais savoir s'il est un CD ou un DVD lorsqu'un utilisateur fournit un chemin directement, ou via le NSOpenPanel, ou fait glisser le CD sur l'application. Je dois prendre des mesures spéciales dans ces cas.

Était-ce utile?

La solution

Consultez VolumeToBSDNode code exemple. Je crois qu'il devrait avoir les bits de code dont vous avez besoin.

Description

Indique comment itérer sur tous les volumes montés et récupérer le nom de noeud BSD (/ dev / disk *) pour chaque volume. Cette information est utilisée pour déterminer si le volume est sur un CD, un DVD ou un autre support de stockage.

Comme Kent souligne, l'appel PBHGetVolParmsSync dans cet exemple est dépréciée. Voici une diff pour utiliser la fonction nouvelle:

-            HParamBlockRec pb;

-            // Use the volume reference number to retrieve the volume parameters. See the documentation
-            // on PBHGetVolParmsSync for other possible ways to specify a volume.
-            pb.ioParam.ioNamePtr = NULL;
-            pb.ioParam.ioVRefNum = actualVolume;
-            pb.ioParam.ioBuffer = (Ptr) &volumeParms;
-            pb.ioParam.ioReqCount = sizeof(volumeParms);
-            
-            // A version 4 GetVolParmsInfoBuffer contains the BSD node name in the vMDeviceID field.
-            // It is actually a char * value. This is mentioned in the header CoreServices/CarbonCore/Files.h.
-            result = PBHGetVolParmsSync(&pb);
+            // Use FSGetVolumeParms instead of the deprecated PBHGetVolParmsSync
+            result = FSGetVolumeParms(actualVolume, &volumeParms, sizeof(volumeParms));
+
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top