C# Textdatei erstellen mit Backup wenn diese bereits besteht

Mijay

Cadet 3rd Year
Dabei seit
Apr. 2010
Beiträge
56
Hi,

eigentlich eine recht simple Sache denke ich mal. Ich habe auch eine Lösung, möchte nur mal wissen, ob es auch einfacher geht.
Ich möchte eine Textdatei erstellen. Wenn diese bereits existiert, soll diese in .bak umbenannt werden. Es soll max. nur eine .bak geben.
Ich lese im else-Pfad erstmal die Datei aus die existiert, benenne die Extension um und schreibe diese dann. Danach schreibe ich die eigentliche Datei. Irgendwie etwas umständlich finde ich, aber es funktioniert.


Code:
            string pfad = @"D:\test.txt";
            string template = "Das ist ein Test\r\nblablabla";

            if (!File.Exists(pfad))
            {
                File.WriteAllText(pfad, template);
            }
            else
            {
                string allText = File.ReadAllText(pfad);
                string writeBak = Path.ChangeExtension(pfad, ".bak");
                File.WriteAllText(writeBak, allText);
                File.WriteAllText(pfad, template);
            }
Gruß
Mijay
 

jhoech

Banned
Dabei seit
Okt. 2009
Beiträge
476
Noch nicht genug Objekte am Start?

Library einbinden draus machen und dann nur noch:

lib.writeFile("D:\test.txt")
 

Mijay

Cadet 3rd Year
Ersteller dieses Themas
Dabei seit
Apr. 2010
Beiträge
56
Es wird nicht geprüft, ob bereits ein Backup vorliegt bzw. was passiert, wenn eins vorliegt?
Es soll immer nur maximal eine Backupdatei vorhanden sein. Durch File.WriteAllText wird diese immer überschrieben. Also es funktioniert schon genauso wie ich es benötige, nur weiß ich eben nicht ob es andere, einfachere Methoden gibt z.B. gibt es ja auch File.Replace, welches dann automatisch ein Backup anlegt, nur müsste ich die erstellte Datei erst woanders speichern und dann mit Replace die vorhandene Datei ersetzen. Das passt mir wegen dem Speicherort aber gar nicht.
 

Rossibaer

Lieutenant
Dabei seit
Apr. 2007
Beiträge
735
Code:
string file = "D:\\test.txt";
string backup = "D:\\test.bak";
if (System.IO.File.Exists(file)) System.IO.File.Copy(file, backup, true);
... wäre so ziemlich die kürzeste Variante fürs Erstellen des Backups nach deinen Vorgaben.
 
Zuletzt bearbeitet: (Ja, die Tippfehler ...)
Top