如何将文本附加到我的文件,以便添加新内容而不是覆盖

时间:2016-04-20 22:44:45

标签: c#

一切正常,直到我注册新用户并点击"保存"它用新信息覆盖文本文件中的什么,我想添加一个新行并开始再次添加内容数组。我知道有一个"追加"功能,但我尝试了很多东西,似乎无法使用我目前写入文件的方式。

    private async void button1_Click(object sender, EventArgs e)
    {
       string[] contents = new string[4];
    contents[0] = "Name: " + txtName.Text;
    contents[1] = "Address: " + txtAddress.Text;
    contents[2] = "Phone: " + txtPhone.Text;
    contents[3] = "Blood Type: " + cmbBloodType.SelectedItem.ToString();

    System.IO.File.WriteAllLines( @"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", contents);

    }

3 个答案:

答案 0 :(得分:1)

你试过File.AppendAllText()吗? 这是一个例子:

File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", "content" + Environment.NewLine);

答案 1 :(得分:1)

我认为这是因为你的内容是一个数组,所以你必须将这个数组连接成一个字符串,如:

    System.IO.File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", string.Join(Environment.NewLine, contents));

答案 2 :(得分:0)

已修改的代码:当您要保存文件时,请尝试:

private async void button1_Click(object sender, EventArgs e)
{
    System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
    stringBuilder.AppendLine("Name: " + txtName.Text);
    stringBuilder.AppendLine("Address: " + txtAddress.Text);
    stringBuilder.AppendLine("Phone: " + txtPhone.Text);
    stringBuilder.AppendLine("Blood Type: " + cmbBloodType.SelectedItem.ToString());

    System.IO.File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", stringBuilder.ToString() + Environment.NewLine);
}

这应该将文本附加到文件的末尾。官方文档可在此处找到:https://msdn.microsoft.com/en-us/library/ms143356(v=vs.110).aspx

希望这有帮助!