Stream der Suche nach Datei im falschen Verzeichnis in C #
-
19-09-2019 - |
Frage
Ich habe ein Programm, wo ich bin mit Fenster Form, in dieser Form ich Openfile verwenden, wo ich eine Datei in einem Verzeichnis öffnen. Dann benutze ich in einer anderen Funktion ein Stream und ich habe eine zweite Datei in meinem großen / Debug-Verzeichnis, das ich die Stream öffnen möge. Aber aus irgendeinem Grund, nachdem ich öffnen Sie die erste Datei mit dem Openfile die Stream Looks für die zweite Datei in diesem Verzeichnis statt in bin / Debug wie üblich.
Wer weiß, warum er das tut und wie ich es lösen kann?
Vielen Dank im Voraus,
Greg
Lösung
Die OpenFileDialog
hat dieses Verhalten; es ändert das aktuelle Verzeichnis für die Anwendung. Um zu verhindern, dass dies geschieht, können Sie die RestoreDirectory
Eigenschaft des OpenFileDialog
.
Andere Tipps
Wenn Sie Verzeichnis in einem offenen Dateidialog ändern, dies führt auch zu Ihrer Anwendung Arbeitsverzeichnis zu ändern. Also, wenn Sie relative Pfade zu verwenden versuchen, es an der falschen Stelle suchen.
Die Lösung ist RestoreDirectory .
Wenn Sie keinen vollständigen Dateipfad angeben, sondern nur einen Dateinamen, das bedeutet, dass die Datei im aktuellen Verzeichnis befindet. Wenn Sie die Openfiledialog verwenden, ändert sich das aktuelle Verzeichnis.
Wenn Sie eine Datei irgendwo unabhängig davon zugreifen möchten, was das aktuelle Verzeichnis auf, müssen Sie dafür einen vollständigen Pfad angeben. Sie können Application.StartupPath
verwenden Sie den Pfad zu dem Ordner zu bekommen, wo Ihr Programm ist.