繁体   English   中英

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

[英]How to append text to my file so it adds new content instead of overwrite

一切正常,直到我注册一个新用户并单击“保存”,它会用新信息覆盖文本文件中的内容,我想添加新行并再次开始添加内容数组。 我知道有一个“附加”功能,但是我尝试了很多事情,但似乎无法使其与我当前的写入文件方式一起使用。

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

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

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

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

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

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM