Запишите данные из текстового поля в текстовый файл в ASP.net с помощью С#

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

person Reizar    schedule 16.09.2012    source источник


Ответы (4)


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

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

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

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

Используйте StreamWriter в режиме добавления. Запишите свои данные с помощью WriteLine(data).

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

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

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

person hatcyl    schedule 16.09.2012