Autor Beitrag
skiller
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 12.06.09 18:11 
also ich würde gerne eine txt. datei in einem anderen ordner speichern und aufrufen naja und beim speichern hab ich schon ein problem !!!

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
private void bestaetigen_registrieren_Click(object sender, EventArgs e)
        {
            try
            {
                if (passwort == passwortcheck)
                {
                    StreamWriter schreiber = new StreamWriter(name + ".txt");
                    schreiber.WriteLine(name);
                    schreiber.WriteLine(passwort);
                    schreiber.Close();
                    MessageBox.Show("You are now registered!!!");
                    RegistrierenForm.ActiveForm.Close();
                }
                else
                {
                    MessageBox.Show("You have an error in the application made!!");
                    passwort_registrieren.Clear();
                    pwcheck_registrieren.Clear();
                }
            }
            catch(IOException)
            {
                MessageBox.Show("Datei Konnte nicht gespeichert werden.""Fehler");
            }



ja und in der zeile wo ich das objekt "schreiber" erzeuge da kann man doch das irgendwie in die zeile schreiben das er dass in einen anderen ordner abspeichert und nicht in den untersten ordner wo das programm debuggt wird!!!

also ich möchte die txt.datei z.B.: in den ordner kontos auf den desktop speichern und nicht im untersten debug ordner sou das ihr wisst was ich meine!!

lg skiller

Moderiert von user profile iconNarses: Titel geändert (Mächtigkeit der Satzzeichen auf 1 reduziert).
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 12.06.09 18:33 
Dann solltest du dem StreamWriter auch den ganzen Pfad mitgeben und nicht nur den Dateinamen.

ausblenden C#-Quelltext
1:
StreamWriter schreiber = new StreamWriter(@"C:\MeinPfad\MeineDatei.txt");					
skiller Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 12.06.09 18:42 
ja aber name ist nicht der dateiname sondern es ist eine variable und was dann in der drin steht z.B.: michael dann fügt er das txt hinzu und dann wird es als michael.txt abgespeichert !!!!

lg skiller
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 12.06.09 18:57 
Du schaffst es doch jetzt schon ".txt" dran zu hängen. Dann wirst du es doch genauso hinbekommen den Pfad noch davor zu schreiben. Ist das selbe Prinzip.
skiller Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 12.06.09 19:05 
habs ja grad so probiert aber er speichert es immer auf C: aber man findet es nur in der suche !!!!


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
private void bestaetigen_registrieren_Click(object sender, EventArgs e)
        {
            try
            {
                if (passwort == passwortcheck)
                {
                    StreamWriter schreiber = new StreamWriter(@"\..\..\" + name + ".txt");
                    schreiber.WriteLine(name);
                    schreiber.WriteLine(passwort);
                    schreiber.Close();
                    MessageBox.Show("You are now registered!!!");
                    RegistrierenForm.ActiveForm.Close();
                }


ja aber so müsste es ja eigentlich gehen oder??

lg
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 12.06.09 19:10 
Ergänzend zu Ralfs Antwort: Zum Zusammensetzen von Dateinamen mit Pfaden ist vorzugsweise Path.Combine zu verwenden; auch Unterordner können dort eingebunden werden. Außerdem sollte bedacht werden, dass ein Anwender nicht in jedem beliebigen Verzeichnis Schreibrechte hat.

Bei deinem (skiller) neuen Versuch hast du fast keine Sicherheit darüber, von welchem Verzeichnis dieser zusammengesetzte Pfad ausgeht. Benutze für so etwas vorzugsweise feste Pfade; in der Application- und Environment-Klasse findest du genügend Vorlagen.

Der StreamWriter wird unvollständig benutzt: Es ist auch Dispose aufzurufen. Dieses Problem wird automatisch gelöst, wenn du es in einen using-Block kapselst. Und es tritt überhaupt nicht auf, wenn die File.ReadXxx verwendest; das ist für Textdateien fast immer einfacher als StreamWriter und Verwandte.

Jürgen
skiller Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 12.06.09 19:28 
ja aber ich kann jeden pfad hineinschreibn den ich will das programm speichert es mir immer auf c: ab also direkt herausn !!!

lg skiller

edit: ich kann zwar den absoluten pfad angeben will aber den relativen angeben und das geht nicht mit path.combine !!!
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 12.06.09 20:25 
user profile iconskiller hat folgendes geschrieben Zum zitierten Posting springen:
ja aber ich kann jeden pfad hineinschreibn den ich will das programm speichert es mir immer auf c: ab also direkt herausn !!!

Nein, das kann nicht sein. Wenn es ein korrekter (!) Pfad ist, der sich auf D: bezieht, wird es auch auf D: gespeichert.

Zur Erklärung: Prüfe doch einmal Environment.CurrentDirectory zum Zeitpunkt des Speicherns sowie den tatsächlichen Pfad mit Path.GetFullPath.

user profile iconskiller hat folgendes geschrieben Zum zitierten Posting springen:
edit: ich kann zwar den absoluten pfad angeben will aber den relativen angeben und das geht nicht mit path.combine !!!

Doch das geht, wie das folgende Beispiel zeigt:
ausblenden C#-Quelltext
1:
2:
3:
         configPath = Path.GetDirectoryName(config.FilePath); 
         configPath = Path.Combine(configPath, "..\\Config"); 
         configPath = Path.GetFullPath(configPath);

Jürgen
skiller Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 12.06.09 20:32 
ja danke jedz klappts hatte da ein paar fehler mit den "\"

trotzdem thx

lg skiller