2016-04-05 6 views
0

Ich versuche, neuen Text zu existierender Datei hinzuzufügen, die ich erstellt habe, aber wenn er auf Speichern klickt, habe ich immer das selbe, um uns zu speichern. Programm das Hinzufügen von Text, aber ich muss immer neuen Text erstellen.Text in Exisit Datei speichern C#

string text = System.IO.File.ReadAllText(@"D:\test.txt"); 

using (SaveFileDialog saveFileDialog1 = new SaveFileDialog()) 
{ 
     if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
     {   
      text = "iNFO ADD" + " = " + textBox3.Text + Environment.NewLine; 
      File.AppendAllText(saveFileDialog1.FileName, text); 
     } 
} 
+0

wenn Sie den vorherigen Inhalt der Datei Verwendung File.WriteAllText statt AppendAllText – Steve

+0

überschrieben werden soll Sieht aus wie alle Sie wirklich wollen, ist 'File.AppendText (...);' nicht sicher, warum Sie ein Savedialog verwenden, wenn Sie kennen den Dateinamen bereits. – LarsTech

+0

Sie "hängen" Text an eine leere Datei an, es sei denn, 'saveFileDialog1.FileName' ist' @ "D: \ test.txt" '. Wahrscheinlich möchten Sie 'text =' in 'text + =' ändern, um zuerst Text an die Zeichenfolge anzuhängen, * dann * können Sie diese Zeichenfolge an eine Datei anhängen (oder nur File.WriteAllText, wenn Sie eine neue Datei erstellen möchten). – Quantic

Antwort

0

Sie können Ihren Text in string [] oder Liste hinzufügen und danach in die Textdatei einfügen.

using (SaveFileDialog saveFileDialog = new SaveFileDialog()) 
{ 
    if(saveFileDialog.ShowDialog() == DialogResult.OK) 
    { 
     List<string> appendLines = new List<string>() 
     { 
      "one string", 
      "two string" 
     }; 

     File.AppendAllLines(saveFileDialog.FileName, appendLines); 
    } 
} 
0

ändern text = zu text +=, und verwenden Sie WriteAllText falls auch die Datei die gleiche wie die ist, die Sie lesen und einfach (ansonsten werden Sie in der Datei zu lesen, fügen Sie dann die gleichen Daten zurück in die Datei). Momentan lesen Sie eine Datei in die Variable text, die alle diese Daten sofort mit neuen Daten überschreibt.

string text = System.IO.File.ReadAllText(@"D:\test.txt");  

    using (SaveFileDialog saveFileDialog1 = new SaveFileDialog()) 
     if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      text += "iNFO ADD" + " = " + textBox3.Text + Environment.NewLine; 
      File.AppendAllText(saveFileDialog1.FileName, text); 
     } 

Oder, wenn Sie wirklich AppendAllText verwenden möchten, und wollen einfach an eine vorhandene Datei anhängen, wollen Sie tatsächlich Ihre text = unverändert und tun dies stattdessen verlassen (keinen Grund, in der Datei zu lesen):

string fileName = @"D:\test.txt"; 

    using (SaveFileDialog saveFileDialog1 = new SaveFileDialog()) 
     if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      string text = "iNFO ADD" + " = " + textBox3.Text + Environment.NewLine; 
      File.AppendAllText(fileName, text); 
     }