2016-07-12 9 views
0

Ich habe ein grundlegendes Verständnis von NSTask in Swift und kann ein paar Befehle in meinem Programm ausführen, aber wenn ich öffne, heißt es, die Datei existiert nicht. Ich fügte die genauen Argumente hinzu, die ich im Terminal verwende, und ich weiß nicht, was ich vermisse. Dies ist der Code:mit open-Befehl mit NSTask

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

Vielen Dank im Voraus. Das ist meine erste Frage, also sei erbarmungswürdig, wenn es dumm ist.

+3

NSTask führt keine Platzhaltererweiterung durch. –

+0

danke, das erklärt viel. – Jean

+0

@MartinR, hast du irgendwelche Vorschläge, wie man das umgehen kann? – Jean

Antwort

0

NSTask erweitert nicht die * in Ihrem Pfad. Aber wenn Sie den Befehl durch die Schale (das heißt /bin/bash) aufrufen, wird es:

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

Die -c Option Bash sagen die Befehle aus einer Zeichenfolge zu lesen. Sie können die Manpage für weitere Informationen überprüfen.

Verwandte Themen