2016-07-12 5 views
0

Swift에서 NSTask에 대한 기본적인 이해를하고 프로그램에서 몇 가지 명령을 실행할 수는 있지만 열 때 실행하면 파일이 존재하지 않는다고합니다. 나는 터미널에서 사용하는 정확한 논증을 추가했고 내가 무엇을 놓치고 있는지 모른다. 다음 코드입니다.NSTask와 open 명령 사용하기

task.launchPath = "/usr/bin/open" 
task.arguments = ["/Volumes/STS*/here.docx"] 
task.launch() 
task.waitUntilExit() 

미리 감사드립니다. 이것은 나의 첫 번째 질문이기 때문에 바보라면 자비를 베풀어 라.

+3

NSTask는 와일드 카드 확장을 수행하지 않습니다. –

+0

감사합니다. 많이 설명합니다. – Jean

+0

@MartinR, 그걸 해결하는 방법에 대한 제안이 있습니까? – Jean

답변

0

NSTask 경로에서 *을 확장하지 않습니다. 당신이 쉘을 통해 명령을 호출한다면 (즉 /bin/bash)를, 그것은 것입니다 :

let task = NSTask() 
task.launchPath = "/bin/bash" 
task.arguments = ["-c", "open /Volumes/STS*/here.docx"] 
task.launch() 
task.waitUntilExit() 

-c 옵션은 문자열에서 명령을 읽어 배쉬를 말한다. 더 자세한 정보는 man 페이지에서 확인할 수 있습니다.

관련 문제