Mit Dart den Where Befehl auf Windows ausführen
Ich finde es ist Zeit sich noch einmal näher mit dem Thema Files zu beschäftigen. In einem schon älteren Post hatte ich darüber geschrieben, wie Sie zum Beispiel herausfinden, auf welcher Platform Ihr Dart Code läuft.
Oder wie Sie Files lesen und schreiben. In diesem Post geht es darum einen CMD (Eingabeaufforderung) Befehl auszuführen. Konkret: Where
Mit Where ist es möglich den absoluten Pfad einer Datei zu finden, immer vorausgesetzt, die Datei existiert. Der Befehl selbst hat verschiedene Optionen. Hier aber zuerst den Dart Code:
Wir benötigen die dart:io Library und binden sie als import ein. Den Code könnte man als Version für zwei Betriebssysteme anlegen, z.b. Apple und Windows.
executable
Um den Code zu verstehen sollten Sie wissen, das das Kernstück dieses kleinen Programms
Process.start ist. Durch das Argument runInShell: true wird die cmd.exe von Windows als Prozess gestartet. Where wiederum funktioniert innerhalb der cmd Umgebung und ist dementsprechend das Argument für die Variable executable.
Process.start ist. Durch das Argument runInShell: true wird die cmd.exe von Windows als Prozess gestartet. Where wiederum funktioniert innerhalb der cmd Umgebung und ist dementsprechend das Argument für die Variable executable.
arguments
Dies ist eine Liste der Optionen, die Sie dem Befehl Where übergeben können. Mit /r sucht Where rekursiv und mit C:\\ geben wir an, wo die Suche starten soll. dart4.dart ist in diesem Beispiel das File, nach dem gesucht wird.
Process.start
Das ist das Herzstück des Codes. Wie der Name schon sagt, wird der Prozess gestartet. Man beachte: Wie der gesamte Code, ist auch diese Funktion asynchron. Dass heisst diese Funktion gibt als Ergebnis ein Future zurück.
stdout / stderr
Die cmd.exe von Windows hat einen Standard Ausgabe Stream. Mit cmd.stdout fügen wir diesen dem Ausgabestream unseres Codes hinzu: stdout.addStream(cmd.stdout);
stderr ist der "Kanal" für Fehlermeldungen. Identisch zu stdout wird der Stream von der cmd.exe, dem Stream unserer Anwendung hinzugefügt.
Ergebnis
Der Code druckt den absoluten Pfad der gesuchten Datei in das Terminal. Sollte die Datei nicht gefunden werden, die entsprechende Fehlermeldung. Bis bald.
Kommentare
Kommentar veröffentlichen