Mac OS X에서 주어진 경로가 제거 가능한 미디어가 장착되어 있는지 알리는 방법은 무엇입니까?

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

문제

Mac OS X의 경로가 주어지면 일반 디렉토리, 일반 파일 또는 장착 된 DMG 또는 기타 마운트 가능한 파일 유형과 달리 장착 된 CD 또는 DVD임을 알리는 방법이 있습니까? 특히 사용자가 직접 또는 NSOPENPANEL을 통해 경로를 공급하거나 CD를 앱으로 드래그 할 때 CD 또는 DVD인지 알고 싶습니다. 이 경우 특별한 조치를 취해야합니다.

도움이 되었습니까?

해결책

Apple 's를 확인하십시오 Volumetobsdnode 예제 코드. 필요한 코드 비트가 있어야한다고 생각합니다.

설명

모든 장착 된 볼륨을 반복하고 각 볼륨에 대해 BSD 노드 이름 (/dev/disk*)을 검색하는 방법을 보여줍니다. 이 정보는 볼륨이 CD, 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