Frage

ein Pfad angegeben, in Mac OS X, ist es eine Möglichkeit zu sagen, dass es sich um eine montierte CD oder DVD ist, als zu einem regelmäßigen Verzeichnis im Gegensatz eine normale Datei oder montiert DMG oder anderen montierbar Dateityp? Insbesondere würde ich gerne wissen, ob es sich um eine CD oder DVD ist, wenn ein Benutzer einen Pfad direkt beliefert oder über die NSOpenPanel oder zieht die CD auf die App. Ich muss in diesen Fällen besondere Maßnahmen ergreifen.

War es hilfreich?

Lösung

Sehen Sie sich Apples VolumeToBSDNode Beispielcode. Ich glaube, es sollte die Code-Bits, die Sie benötigen.

Beschreibung:

Zeigt an, wie in allen aktivierten Volumes zu durchlaufen und die BSD-Knotennamen (/ dev / disk *) für jedes Volume abrufen. Diese Informationen werden verwendet, um zu bestimmen, ob die Lautstärke auf einer CD, DVD oder einem anderen Speichermedium ist.

Wie Kent weist darauf hin, das PBHGetVolParmsSync Aufruf in diesem Beispiel ist veraltet. Hier ist ein diff die neuere Funktion zu verwenden:

-            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));
+
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top