Записать данные из 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);
}
Похоже, очень простой вопрос с очень простым ответом: открыть существующий файл, добавить одну строку
Если вы публикуете текущий код, мы можем изменить его, чтобы добавить вместо перезаписи.