C# Textdatei erstellen mit Backup wenn diese bereits besteht

Mijay

Ensign
Registriert
Apr. 2010
Beiträge
133
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
 
Noch nicht genug Objekte am Start?

Library einbinden draus machen und dann nur noch:

lib.writeFile("D:\test.txt")
 
Erdmännchen schrieb:
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.
 
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 ...)
Zurück
Oben