Autor Beitrag
Heddi
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 05.03.13 22:00 
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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 376
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: 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

Für diesen Beitrag haben gedankt: Heddi
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 05.03.13 23:55 
@user profile iconGuaAck : falsche Sprache ;)

Den Pfad zur Executable wäre in einer Winforms Anwendung

ausblenden 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

ausblenden C#-Quelltext
1:
Application.UserAppDataPath					


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

Für diesen Beitrag haben gedankt: GuaAck, Heddi
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: Heddi
Heddi Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: 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. :)

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



Vielen Dank.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.