Aktuelles Arbeitsverzeichnis einer Anwendung rausfinden, speichern, ändern, etc.
-
Ich frage mit einem File.Exists("myFile.txt") ab, ob eine bestimmte Datei existiert. Existiert die Datei nicht, darf der User die Datei manuell per openFileDialog auswählen.
Nun ist es so, dass bei dem ersten Aufruf der Methode exists unter dem Pfad nachgesehen wird, in dem ich meine .exe gestartet habe. Wenn ich nun aber einen zweiten Aufruf von Exists vornehme, nachdem der User für myFile.txt einen speziellen Ort angegeben hat, dann sieht der zweite Aufruf von Exists ebenfalls in diesem neu spezifizierten Ort nach.
Gibt es irgend einen string oder so in dem das aktuelle "working directory" (also nicht das Verzeichnis in dem sich die .exe befindet, sondern eben das in dem die .exe gerade rumwurschtelt) festgehalten wird?
Oder gibt es eine Möglichkeit, die Methode Exists dazu zu bringen, grundsätzlich nur in dem Verzeichnis nachzusehen, wo eben .exe läuft. Achja, und ich möchte der Methode nur einen Filename geben, nicht einen absoluten Pfad.
Hat jemand ne Idee?
-
Den aktuellen Arbeitspfad bekommst du über:
Environment.CurrentDirectory
-
Hi,
danke für die Antwort. Habe inzwischen auch Directory.SetCurrentDirectory() bzw. Directory.GetCurrentDirectory() gefunden.
Spricht etwas dagegen, diese beiden zu benutzen?
-
Eigentlich nicht. Nur kann es sein, dass das Verhalten von Benutzersicht nicht ganz eingängig ist, wenn beim "OpenFileDialog" das Verzeichnis ständig zurückgesetzt wird.
An deiner Stelle würde ich lieber eine Funktion schreiben, die einen Dateinamen nimmt und immer im Ausführverzeichnis sucht.
-
Man kanns auch kompliziert machen
Der OpenFileDialog hat nen Property RestoreDirectory welches du einfach auf true setzt, und gut ist.
-
Aaaah, das ist natürlich das Beste! Vielen Dank!