1

我有一个文本框,用户可以在其中输入他们的电子邮件,我想要做的是当他们点击提交按钮时。该电子邮件将保存到名为 emails.txt 的文本文件(在我的服务器上)中

我设法使用 System.IO 然后使用 File.WriteAll 方法使其工作。但是我想这样做,以便它将电子邮件添加到列表中(在新行上),而不是仅仅覆盖那里已经存在的内容。

我见过有人提到使用 Append,但我不太明白如何让它工作。

这是我当前的代码(覆盖而不是附加)。

public partial class _Default : Page
{
    private string path = null;

    protected void Page_Load(object sender, EventArgs e)
    {
        path = Server.MapPath("~/emails.txt");
    }

    protected void emailButton_Click(object sender, EventArgs e)
    {
        File.WriteAllText(path, emailTextBox.Text.Trim());
        confirmEmailLabel.Text = "Thank you for subscribing";
    }
}
4

4 回答 4

7

您可以使用StreamWriter来处理文本文件。模式中的WriteLine方法true每次都会在新行中附加您的电子邮件....

using (StreamWriter writer = new StreamWriter("email.txt", true)) //// true to append data to the file
{
    writer.WriteLine("your_data"); 
}
于 2012-09-16T06:27:44.940 回答
1

从官方MSDN 文档

using (StreamWriter w = File.AppendText("log.txt"))
{
   MyWriteFunction("Test1", w);
   MyWriteFunction("Test2", w);
}
于 2012-09-16T06:25:26.617 回答
1

StreamWriter在追加模式下使用。用 . 写入您的数据WriteLine(data)

using (StreamWriter writer = new StreamWriter("emails.txt", true))
{
    writer.WriteLine(email);
}
于 2012-09-16T06:26:18.997 回答
0

似乎是一个非常简单的问题,答案非常简单:打开现有文件,附加一行

如果您发布当前代码,我们可以将其修改为追加而不是覆盖。

于 2012-09-16T06:22:49.873 回答