Записать данные из Textbox в текстовый файл в ASP.net с C#

У меня есть текстовое поле, где пользователь может ввести свою электронную почту, я хочу сделать так, чтобы, когда они нажимали кнопку отправки. Это письмо будет сохранено в текстовом файле (на моем сервере) с именем 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 ответа

Решение

Вы можете использовать StreamWriter для работы с текстовым файлом. WriteLine метод в true каждый раз добавляйте вашу электронную почту в новую строку....

using (StreamWriter writer = new StreamWriter("email.txt", true)) //// true to append data to the file
{
    writer.WriteLine("your_data"); 
}

Из официальной документации MSDN:

using (StreamWriter w = File.AppendText("log.txt"))
{
   MyWriteFunction("Test1", w);
   MyWriteFunction("Test2", w);
}

Использование StreamWriter в режиме добавления. Напишите ваши данные с WriteLine(data),

using (StreamWriter writer = new StreamWriter("emails.txt", true))
{
    writer.WriteLine(email);
}

Похоже, очень простой вопрос с очень простым ответом: открыть существующий файл, добавить одну строку

Если вы публикуете текущий код, мы можем изменить его, чтобы добавить вместо перезаписи.

Другие вопросы по тегам