Mac OS X에서 주어진 경로가 제거 가능한 미디어가 장착되어 있는지 알리는 방법은 무엇입니까?
-
18-09-2019 - |
문제
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));
+
제휴하지 않습니다 StackOverflow