Zum Inhalt springen

[C++.NET] FileStream Problem


Empfohlene Beiträge

Geschrieben (bearbeitet)

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 von Royal_Flush
Präfix
Geschrieben
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.

Geschrieben

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?

Geschrieben
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...

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...