С# | StreamWriter продолжает заменять текущие строки

Итак, у меня есть это приложение, в котором есть 3 текстовых поля, которые запрашивают у пользователя ввод. Когда пользователь закончил заполнять текстовые поля, появляется кнопка, которая сохраняет введенные данные в класс.

Теперь идея состоит в том, что когда пользователь нажимает кнопку для сохранения ввода в классе, ввод также сохраняется в текстовом файле. Проблема, с которой я столкнулся сейчас, заключается в том, что всякий раз, когда пользователь добавляет новый ввод, старый ввод заменяется в текстовом файле.

Это код:

using (StreamWriter txtFile = new StreamWriter(@"C:\Users\Desktop\smtp.txt"))
{
    txtFile.WriteLine(Class_Smtp[Index].SmtpClientName);
    txtFile.WriteLine(Class_Smtp[Index].SmtpPort);
    txtFile.WriteLine(Class_Smtp[Index].SmtpEmailExtension + Environment.NewLine);
}

Любые идеи?

Заранее спасибо.


person user2772532    schedule 20.09.2013    source источник


Ответы (2)


Вы должны добавить текст

using (StreamWriter txtFile = new StreamWriter(@"C:\Users\Desktop\smtp.txt", true))
{
    txtFile.WriteLine(Class_Smtp[Index].SmtpClientName);
    txtFile.WriteLine(Class_Smtp[Index].SmtpPort);
    txtFile.WriteLine(Class_Smtp[Index].SmtpEmailExtension + Environment.NewLine);
}
person user2764860    schedule 20.09.2013
comment
Благодарю вас! Кажется, я действительно забыл передать еще один параметр. Спасибо. - person user2772532; 20.09.2013

Используйте переопределение конструктора StreamWriter, которое принимает логический параметр, чтобы указать, следует ли добавлять или заменять, и передать true:

public StreamWriter(string path, bool append)

Для вашего примера:

using 
(
    StreamWriter txtFile = new StreamWriter
    (
        @"C:\Users\Desktop\smtp.txt", 
        true // <=== This parameter tells it to append
    )
)
person Matthew Watson    schedule 20.09.2013
comment
Спасибо большое! - person user2772532; 20.09.2013