将文本保存到Exisit文件c#

时间:2016-04-05 21:14:31

标签: c# winforms save

我正在尝试将新文本添加到我创建的现有文件中但是当他点击保存时我总是保存我们。程序添加文本但我总是必须创建新文本。

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

2 个答案:

答案 0 :(得分:0)

您可以在字符串[]或列表中添加文本,然后添加文本文件。

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

答案 1 :(得分:0)

text =更改为text +=,并使用WriteAllText以防文件与您刚读入的文件相同(否则您将在文件中读取,然后附加相同的数据回到文件中)。目前,您正在将文件读入变量text,立即用新数据覆盖所有数据。

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

或者,如果您真的想要使用AppendAllText并且只想附加到现有文件,您实际上希望保持text =不变并执行此操作(无理由读取文件):

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