2012-03-04 2 views
3

Скажем, у меня есть следующий код:C# добавить текст в текстовый файл без его перезаписи?

StreamWriter sw = new StreamWriter(File.OpenWrite(Path)); 
sw.Write("Some stuff here"); 
sw.Dispose(); 

Этот код заменяет содержимое файла с «Некоторые вещи здесь,» однако я хотел бы добавить текст в файл, а не замены текста. Как мне это сделать?

ответ

5

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

var sw = new StreamWriter(path, true); 

File.OpenWrite не поддерживает добавление.

3

Вы можете использовать метод File.AppendAllText и заменить 3 строки кода, который вы имеете с:

File.AppendAllText(Path, "blah"); 

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

1

Существует конструктор StreamWriter, который принимает bool в качестве второго параметра, который инструктирует автора добавлять, если true.

0

Чтобы добавить текст в файл, его можно открыть, используя FileMode.Append.

StreamWriter sw = new StreamWriter(File.Open(Path, System.IO.FileMode.Append)); 

Это всего лишь один из способов сделать это. Хотя, если вам явно не нужен объект StreamWriter, я бы рекомендовал использовать то, что предложили другие: File.AppendAllText.

Смежные вопросы