2010-08-12 4 views
1

여러분,코코아 : 마운트 할 수없는 볼륨을 감지하십시오.

볼륨을 마운트 해제 할 수 있어야하는 작은 응용 프로그램을 개발 중입니다.

현재, 나는 볼륨을 마운트 해제 여부를 결정하기 위해 다음 코드를 사용하고 있습니다 :

BOOL isRemovable, isWritable, isUnmountable; 
NSString *description, *type; 

BOOL succ = [ws getFileSystemInfoForPath:[itemInfo objectForKey:@"path"] 
       isRemovable:&isRemovable 
       isWritable:&isWritable 
       isUnmountable:&isUnmountable 
       description:&description 
       type:&type]; 

문제 것은 그 CD 또는 DVD GET isUnmountable = YES 플래그와 같은 물리적으로 제거 볼륨. USB 장치는 마운트 할 수 없지만 그렇게하지는 않습니다.

여러분은 해결책이 있습니까?

는 ----

편집

나는 FAT 포맷 된 또 다른 USB 스틱으로 그것을 밖으로 시도했다. Finder 나 디스크 유틸리티를 통해 마운트 할 수없는 Mac에 연결된 2 개의 USB 하드 디스크가 있습니다.이 파일들은 HFS 포맷입니다. , NO
/볼륨/타임머신 : 마운트 해제 NO
/볼륨/코끼리, HFS, : 이동식 NO :

/HFS, 탑재 할 : NO 이동식 I은 상기에서 코드를 사용하여 출력을 만들어 마운트 해제, HFS : NO 이동식 : NO
/볼륨/USBSTICK, 도스, 탑재 할 : YES 이동식 :

그것은 장치가 FAT 또는 MSDOS 포맷 인 경우에만 YES를 반환있어서 YES 같다. 이것은 다른 2 (Elephant, Time Machine)가 USB를 통해 연결되어 있으며 이동식이거나 마운트 해제가 가능한 볼륨이므로 이상합니다. 그 정보를 얻는 또 다른 방법이 있습니까, 아니면 제 코드에서 뭔가 잘못 했습니까?

-

감사

마르코

답변

2

내 자신의 USB 스틱 (1GB의 크루저 - 그래, 내가 뒤에있어 알)와 함께 정확한 코드를 사용하여, 내가 받고 있어요 isRemovable에 대해 YES입니다.

BOOL은 대개 YES 또는 NO로 표시되지만 TRUE가 작동합니다. 확실히하기 위해 나는 그것을 또한 테스트했다. 나는 항상 isRemovable == TRUE/YES를 얻고있다.

"마운트 해제/제거 가능"조건은 실제로 볼륨에서 리소스를 사용하고 있는지 여부에 따라 달라질 수 있습니다. 따라서이 방법이 "진행하여 마운트 해제"로 응답하지 않을 가능성이 있습니다. 귀하의 질문에 더 많은 맥락이 무엇인지 식별하는 데 도움이 될 수 있습니다.

+0

입력 해 주셔서 감사합니다. 나는 더 많은 맥락으로 내 게시물을 편집하고 USB 스틱으로 코드를 다시 시도했다. MSDOS 형식의 장치에서만 작동하는 이유를 알고 있습니까? –

+0

방금 ​​HFS +로 스틱을 닦아서 다시 포맷하고 테스트를 반복했습니다. 잘 작동합니다. isUnmountable 및 isRemovable은 모두 YES입니다. –

+0

흠 ... 그렇다면 USB 스틱이 작동하고 USB 하드 디스크가 작동하지 않는 이유는 무엇입니까? 진짜 문제처럼 들리지 않습니다. 동일한 코드가 다르게 작동하는 이유가 있어야합니다. Btw : 최신 개발 도구와 함께 10.6.4를 사용 중입니다 ... –