Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[C++.NET] FileStream Problem

Empfohlene Antworten

Veröffentlicht

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

Kann es sein das du vergessen hast, den Dateinamen mitzugeben ?

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?

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.