2016-04-05 15 views
0

Oluşturduğum dosyaya yeni bir metin eklemeye çalışıyorum ama oluşturduğumda, her zaman aynı şeyi kurtarıyorum. Program ekliyor ama her zaman yeni bir metin oluşturmalıyım.Exisit dosyasına c metin kaydetme 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

yerine AppendAllText – Steve

+0

dosya kullanımı File.WriteAllText önceki içeriğin üzerine istiyorsanız görünüyor Dosya adını zaten biliyorsunuz. – LarsTech

+0

"saveFileDialog1.FileName", "@" D: \ test.txt "' olduğu sürece, boş bir dosyaya "ekleme" metnisiniz. Büyük olasılıkla 'text = 'yerine' text + = 'değiştirmek isteyebilirsiniz, ilk olarak dizgiye metin eklemek için, sonra * bu dizgiyi bir dosyaya ekleyebilirsiniz (veya sadece yeni bir dosya oluşturmayı düşünüyorsanız File.WriteAllText). – Quantic

cevap

0

Metninizi [] veya Listele dizisine ve sonra da metin dosyasına ekleyerek ekleyebilirsiniz.

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

Değişim text =text += için ve ayrıca dosya sadece okumak aynı olduğu durumda WriteAllText kullanmak (aksi takdirde, dosyada okuyacaktır sonra dosyaya tekrar aynı veriyi ekleme). Şu anda text değişkenine bir dosya okuyorsunuz, bu verilerin hepsini yeni verilerle üzerine yazıyorsunuz. Gerçekten AppendAllText kullanmak istiyorsanız ve sadece varolan dosyaya eklemek istiyorsanız

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); 
     } 

Ya da, aslında (dosyada okumak için bir neden) sizin text = değiştirmeden bırakmak ve bu yerine yapmak istiyorum:

Eğer bir SaveDialog eğer kullandığınız niçin `emin değil; Eğer gerçekten istediğiniz tüm` olan File.AppendText (...) gibi
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); 
     }