Entwickler-Ecke

IO, XML und Registry - StreamWriter Klasse


Heddi - Di 05.03.13 22:00
Titel: StreamWriter Klasse
Hallo,

ich möchte per Streamwriter Werte in eine CSV schreiben. Diese Datei soll später im Ordner der .exe gespeichert werden.
Wie kann ich die Pfadangabe so ändern, dass die CSV immer im Ordner des Programms gespeichert wird?

Das Programm wird z.B. auf dem Desktop ausgeführt also soll auch die CSV auf dem Desktop gespeichert werden.


C#-Quelltext
1:
 StreamWriter sw = new StreamWriter(@"D:\Messung.csv");                    


Danke


Moderiert von user profile iconTh69: Topic aus WinForms verschoben am Mi 06.03.2013 um 08:44


GuaAck - Di 05.03.13 23:14

Hallo Heidi,

extractfilepath(application.exename) gibt den Pfad der laufenden EXE zurück, also das was Du brauchst.

Vorsicht: Prüfe, ob der letzte "\" enthalten ist.

Gruß
GuaAck


Ralf Jansen - Di 05.03.13 23:55

@user profile iconGuaAck : falsche Sprache ;)

Den Pfad zur Executable wäre in einer Winforms Anwendung


C#-Quelltext
1:
Path.GetDirectoryName(Application.ExecutablePath)                    


Aber das speichern in dem Ordner in dem auch die Executable liegt ist schon lang verpönt. Üblicherweise hat da ein normaler User nicht mal Schreibrechte.
Windowskonform verhälst du dich wenn du zum Beispiel


C#-Quelltext
1:
Application.UserAppDataPath                    


benutzt. Enthält den anwendungsspezifischen Ordner unterhalb von Appdata des konkreten Benutzers.


Palladin007 - Mi 06.03.13 04:18

Reicht nicht auch einfach nur der Dateiname ohne weitere Pfad-Angabe?

Soweit ich mich erinnern kann, speichert der die Datei dann in den Applikations-Ordner, also den Ordner, aus dem die exe-Datei aufgerufen wurde.


Heddi - Mi 06.03.13 08:52

Hallo ihr zwei,

also ich hab jetzt nur den Dateinamen angegeben und die CSV wird direkt im selben Ordner gespeichert. :)


C#-Quelltext
1:
 StreamWriter sw = new StreamWriter(@"Messung.csv");                    



Vielen Dank.


Ralf Jansen - Mi 06.03.13 12:08

Dann benutzt du den aktuellen Pfad der je nachdem wie du den Prozess startest eher zufällig mit dem Pfad der Executable übereinstimmt und sich zur Laufzeit der Anwendung ändern kann. Don't do it wenn du einen eindeutigen Speicherort willst.