2016-07-12 11 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オプション文字列からコマンドを読み取るためにバッシュを教えてください。より多くの情報が得られるようにマニュアルページをチェックすることができます。

関連する問題