C# 如何将文本附加到我的文件中,使其添加新内容而不是覆盖

C# 如何将文本附加到我的文件中,使其添加新内容而不是覆盖,c#,C#,在我注册一个新用户并单击“保存”之前,一切都正常。它会用新信息覆盖文本文件中的内容。我想添加一行,然后再次开始添加内容数组。我知道有一个“append”函数,但我已经尝试了很多方法,似乎无法让它与我当前的文件写入方式一起工作 private async void button1_Click(object sender, EventArgs e) { string[] contents = new string[4]; contents[0] = "Name:

在我注册一个新用户并单击“保存”之前,一切都正常。它会用新信息覆盖文本文件中的内容。我想添加一行,然后再次开始添加内容数组。我知道有一个“append”函数,但我已经尝试了很多方法,似乎无法让它与我当前的文件写入方式一起工作

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

    }

您是否尝试过
File.AppendAllText()
? 下面是一个例子:

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

编辑的代码:当您要保存文件时,请尝试:

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);
}
它应该将文本附加到文件的末尾。官方文件可在此处找到:


希望这有帮助

我认为这是因为您的内容是一个数组,所以您必须以一个字符串的形式加入此数组,如:

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

不,但我99%确定我不能这样做,因为双引号中的内容会使我的“文本”被放入file@user3485895这只是一个例子。第二个参数是要附加到文件中的任何文本,
contents
在您的情况下。我尝试使用append函数,但什么都不起作用,所以我将它返回到写文件时起作用的地方1次,但现在用我拥有的东西,我似乎无法向它添加新信息,我假设这是一个非常简单的问题。我在用您的计算机启动程序时没有收到任何错误建议但当我单击“注册”时,文本文件“System.String[]”中会显示这一内容。您是否知道为什么它会保存该内容而不是我的文本框的内容?最好将所有内容都放在
StringBuilder
中。我将更新我的答案以反映这一点。还有
File.AppendAllLines
方法。无需手动连接线路。