2011-09-26 4 views
1

네트워크 볼륨을 어떻게 마운트 해제합니까?네트워크 볼륨을 마운트 해제 하시겠습니까?

NSWorkspace 그들은 탈착도 마운트도 불가능하다고 생각합니다. unmountAndEjectDeviceAtPath: @"/Volumes/the network volume in question" 아무 일도 일어나지 않습니다. 내 코 바로 아래에 앉아이 일을하는 쉬운 방법이 있을지 모르지만 찾을 수는 없습니다.

필자는 AppleScript로 네트워크 볼륨을 꺼내고 코코아에서 전화를 걸도록 말하고 싶지 않습니다. 그저 까다 롭기 때문입니다.

+0

Objective-C에서 디바이스를 프로그래밍 방식으로 마운트 해제하려고합니까? 그렇다면 질문을 실제로 프로그래밍 질문처럼 읽지 않으므로 질문에 명확하게 기재하십시오. –

답변

0

unmount(2) 공정한 게임을 호출 (내 dev에 플랫폼 타이거 그런데,이다)? (어떻게 홀수, 대부분의 유닉스 시스템은 시스템 호출 umount()하지 unmount()의 이름을, 그리고 맨 페이지는 자주 상당히 명확 unmount()를 사용하여 이름 및 개요 섹션에도 불구하고 umount()를 호출합니다.)

다른 어떤에서 사용 마운트인가? lsof(1) 또는 fuser(1) 출력을 점검하여 현재 열려있는 파일 시스템이있는 프로세스가있는 경우 해당 프로세스를 확인하십시오. (어쩌면 당신의 마운트 해제 호출하기 전에 간단한 chdir("/");을 추가하는 것은 그것을 할 것?)

+0

예! 고맙습니다! 'unmount ("/ Volumes/theVolume", 0)'은 완벽하게 작동합니다. 진정하고 내 코 바로 아래. 이봐. 답을 읽은 후에 터미널 명령 인'umount/Volumes/theVolume' 또는 간단히'umount theVolume'도 작동하고'NSTask'를 사용하여 Cocoa를 통해 실행될 수 있지만'unmount()'는 훨씬 더 깔끔하다는 것을 발견했습니다. 어리석은'NSWorkspace'. 쳇. – user512530

0
또한) (마운트 해제보다 더 많은 상황을 처리하는 diskutil을 사용할 수 있습니다

: 마운트 지점 주위에 따옴표를

std::string command = std::string("diskutil unmount \"") + currentMountPoint + "\""; 
int ret = system(command.c_str()); 

주, 대부분 /Volumes/Untitled과 비슷하지만 /Volumes/NO NAME