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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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