Получение исключения при создании текстового файла в папке Appdata с указанием "Файл" используется другим процессом

Я пишу текстовый файл в папке Appdata, я создаю папку и создаю текстовый файл, а в следующей строке я пишу текст в файл через StreamWriter. Но здесь я получаю следующее исключение.

Процесс не может получить доступ к файлу 'C:\sdfdfg\sdfsd\AppData\Roaming\MyFolder\myFile.txt', поскольку он используется другим процессом.

Это исключение я получаю при создании файла, если я запускаю приложение во второй раз, когда приложение записывает текст в тот же файл.

Мой код следующий

StringBuilder sb=new StringBuilder();
if (!File.Exists(filePath))
{
     File.Create(filePath);
     sb.AppendLine(line);
     using (StreamWriter writer = new StreamWriter(filePath, true))
     {
         writer.Write(sb.ToString());
         writer.Close();
     }
}

Я попробовал другую функцию File, File.WriteAllText(filePath, textToWrite); но он также работает так же, как и выше.

1 ответ

Решение

Самое простое решение - просто оставить File.Create(),

Конструктор, который вы используете для StreamWriter, уже создаст файл, если он не существует.

Другой вариант - передать FileStream тот File.Create() возвращается в соответствующий конструктор StreamWriter,

Другие вопросы по тегам