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

本文关键字:添加 新内容 覆盖 文本 文件 我的 | 更新日期: 2024-10-21 23:17:11

一切都在工作,直到我注册了一个新用户并单击"保存",它用新信息覆盖了文本文件中的内容,我想添加一行新行并再次开始添加内容数组。我知道有一个"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);
    }

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

我认为这是因为你的内容是一个数组,所以你必须将这个数组加入一个字符串中,比如:

    System.IO.File.AppendAllText(@"C:'Users'Ben'Documents'C#'Final'Bloodbank'BloodBank'bin'Debug'Bloodbank.txt", string.Join(Environment.NewLine, 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);
}

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

希望这能有所帮助!