Veröffentlicht 3. Oktober 201014 j Hallo, Ich versuche eine Datei zu öffnen, die im selben Verzeichnis liegt wie mein Programm. Da FileStream ja keine relativen Pfadangaben unterstützt, wollte ich mir den Pfad wie folgt ausgeben lassen: System::String^ Path = Directory::GetCurrentDirectory() + "/"; FileStream^ datei = gcnew FileStream( Path, FileMode::Open ); Das Problem ist jetzt, dass ich während des Ausführens folgende Fehlermeldung erhalte: Eine nicht behandelte Ausnahme des Typs "System.IO.DirectoryNotFoundException" ist in mscorlib.dll aufgetreten. Zusätzliche Informationen: Ein Teil des Pfades "c:\Dokumente und Einstellungen\xxx\Eigene Dateien\Visual Studio 2008\Projects\test\test\" konnte nicht gefunden werden. woran könnte das liegen? Bearbeitet 3. Oktober 201014 j von Royal_Flush Präfix
3. Oktober 201014 j woran könnte das liegen?Das könnte daran liegen, dass du nirgendwo einen Dateinamen angibst. Übrigens liefert dir GetCurrentDirectory das aktuelle Arbeitsverzeichnis, nicht das Verzeichnis, in dem das Programm liegt.
3. Oktober 201014 j Das kann schon sein, aber wenn ich den Dateinamen dranhänge, bringt er mir beim darauffolgendem StreamReader die Fehlermeldung, dass die Datei bereits von einem anderen Prozess verwendet werde. System::String^ Path = Directory::GetCurrentDirectory() + "/server.properties"; FileStream^ datei = gcnew FileStream( Path, FileMode::Open ); StreamReader^ reader = gcnew StreamReader( "server.properties" ); Zwar bekomme ich jetzt beim FileStream keine Fehlermeldung mehr, aber ohne StreamReader kann ich doch auch nichts auslesen, oder?
4. Oktober 201014 j Das kann schon sein, aber wenn ich den Dateinamen dranhänge, bringt er mir beim darauffolgendem StreamReader die Fehlermeldung, dass die Datei bereits von einem anderen Prozess verwendet werde. System::String^ Path = Directory::GetCurrentDirectory() + "/server.properties"; FileStream^ datei = gcnew FileStream( Path, FileMode::Open ); StreamReader^ reader = gcnew StreamReader( "server.properties" ); Zwar bekomme ich jetzt beim FileStream keine Fehlermeldung mehr, aber ohne StreamReader kann ich doch auch nichts auslesen, oder? Es liegt daran das du schon die Datei mit dem FileStream benutzt darum kann der StreamReader nicht drauf zugreifen... Wenn du nur was aus der Dateilesen willst brauchst du nur den StreamReader.. der is leichter zum usen. StreamReder sr = new StreamReder(datei); st.ReadLine(); ließt die erste zeile aus ... rufst du nochmal readLine() auf ließt er die zweite zeile aus...
4. Oktober 201014 j Oh, ok, jetzt funktioniert es. Ich bin davon ausgegangen, dass ich einen FileStream brauche, um eine FileReader arbeiten lassen zu können. Da habe ich das Turorial wohl etwas missverstanden. Danke.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.