Перезаписать данные в файле. С#

программирование программы C#

В общем прога срабатывает на нажатия разных клавиш и в зависимости от этого нужно записать данные в один и тот же файл (!не дописать, а переписать файл).

using (StreamWriter streamWriter = new StreamWriter("name.txt"));
StreamWriter sw;
FileInfo fi = new FileInfo("name.txt");
sw = fi.AppendText();
sw.WriteLine("Заносим кучу всего");
......
sw.Close();

string cmd;
System.Console.WriteLine("\nEnter command>");
cmd = Console.ReadLine();
if (cmd == "m")
// и тут уже нужно перезаписать данные в тот файл


Пробовал в ифе уже удалять файл и создавать файл с таким же названием, все равно давало ошибку

"Процесс не может получить доступ к файлу "путь\name.txt", так как этот файл используется другим процессом."

Примечание:
Если не использовать using ,то ошибка типа "Процесс не может получить доступ к файлу "путь\name.txt", так как этот файл используется другим процессом." появляется уже на строке streamWriter = fi.AppendText();
Ответы:
Вот это ужас. Зачем вы используете конструкцию using, если внутри объявляете еще один StreamWriter. Writer из using уже заблокировал файл, а вы пытаетесь его записать вторым.
Удалите StreamWriter sw;
Вместо sw.WriteLine пишите streamWriter.WriteLine
Должно получиться что-то вроде этого
using (StreamWriter streamWriter = new StreamWriter("name.txt",true)) //Создаем StreamWriter, говорим, что хотим дописывать файл.
//Блок using создаем для того, чтобы не задумываться о закрытии стрима и уничтожении объекта
        {
         streamWriter .WriteLine("Заносим кучу всего");
         ......
         }
       
        string cmd;
             System.Console.WriteLine("\nEnter command>");
             cmd = Console.ReadLine();
             if (cmd == "m")
                    // и тут уже нужно перезаписать данные в  тот файл
           
Не надо усложнять программу. И изучите синтаксис, потому что строка using (StreamWriter streamWriter = new StreamWriter("name.txt")); не имеет смысла!


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.