Entwickler-Ecke

IO, XML und Registry - Anwendung soll in Unterordner Dateien speichern


Hm... - Sa 28.03.09 12:40
Titel: Anwendung soll in Unterordner Dateien speichern
Hallo, ich hab ein Problem. Und zwar soll mein Programm Textdateien speichern. Diese sollen in einem Unterordner gespeichert sein. Wenn ich es allerdings so versuche:

C#-Quelltext
1:
            StreamWriter save = new StreamWriter("\\Hotkeys\\" + hkName + ".txt");                    

und dann die Dateien speichern möchte, möchte er die Dateien in D:\Hotkeys\blalba.txt speichern. Ich möchte aber, dass egal wo sich die Anwendung befindet, sie in den "Hotkeys" Unterordner ihre Textdateien speichert. Also z. B.: Wenn der Pfad "C:\Programme\Anwendung\bla.exe" ist, sollen die Textdateien unter "C.\Programme\Anwendung\Hotkeys\bla.txt" gespeichert werden. Wie muss ich dann den Pfad bei StreamWriter angeben?

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


jaenicke - Sa 28.03.09 12:59

Schau dir einmal Application.StartupPath [http://msdn.microsoft.com/de-de/library/system.windows.forms.application.startuppath.aspx] an. ;-)

Zudem muss dir klar sein, dass du für das Schreiben in einen Unterordner unter c:\programme (wenn dein Programm dort installiert ist) Adminrechte brauchst. Deshalb geht diese Lösung nur bei einem portablen Programm für USB-Sticks oder so.


JüTho - Sa 28.03.09 13:22

Außerdem ist für die Zusammensetzung von Dateinamen Path.Combine das sinnvollste Verfahren. Schau dir auch einmal die Environment.SpecialFolder-Enumeration an, vor allem CommonApplicationData.

Für Textdateien gibt es in der File-Klasse "einfachere" Varianten zum Speichern, z.B. WriteAllText, WriteAllLines, AppendText. (Die benutzen intern natürlich auch StreamWriter, aber der schreibfaule Programmierer erleichtert sich gerne die Arbeit.)

Gruß Jürgen