كيفية معرفة ما إذا كان مسار معين يتم تثبيت الوسائط القابلة للإزالة في نظام التشغيل Mac OS X؟

StackOverflow https://stackoverflow.com/questions/1698124

سؤال

بالنظر إلى المسار، في Mac OS X، هل هناك طريقة لمعرفة أنه قرص مضغوط أو قرص DVD مثبتا، بدلا من دليل منتظم أو ملف منتظم أو ملف DMG أو غيره من نوع الملفات القابلة للتركيب الأخرى؟ على وجه التحديد أود أن أعرف ما إذا كان قرص مضغوط أو قرص DVD عندما يوفر المستخدم مسارا مباشرة، أو عبر NSOPENPANEL، أو يسحب القرص المضغوط إلى التطبيق. أحتاج إلى اتخاذ إجراءات خاصة في هذه الحالات.

هل كانت مفيدة؟

المحلول

تحقق من أبل Volumetobsdnode. مثال رمز. أعتقد أنه يجب أن يكون لديه بتات الرمز الذي تحتاجه.

وصف

يوضح كيفية التكرار عبر جميع الأحجام المثبتة واسترداد اسم العقدة BSD (/ dev / disk *) لكل وحدة تخزين. يتم استخدام هذه المعلومات لتحديد ما إذا كان حجم الصوت على قرص مضغوط أو قرص DVD أو بعض وسائط التخزين الأخرى.

كما يشير كينت، PBHGetVolParmsSync مكالمة في هذا المثال يتم إهمالها. إليك فرق لاستخدام الوظيفة الأحدث:

-            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));
+
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top