.NET Core 2.2 Razor Page код позади создает текстовый файл, но не может записать простую строку в файл - PullRequest
0 голосов
/ 27 сентября 2019

Не уверен, что я делаю не так.Я могу создать текстовый файл с именем «Дата и время».Моя запись в файл не удалась.Если я не ставлю ".Close ()" в конце CreateText, он говорит, что файл открывается другим процессом при попытке записи.С ".Close ()" нет ошибок, но он не пишет.

var newFileName = "logs\\" + DateTime.Now.ToString().Replace("/","_").Replace(":","-").Replace(" ","__") + ".txt";
var webRootPath = _environment.WebRootPath;
var dataPath = Path.Combine(webRootPath, newFileName);
System.IO.File.CreateText(dataPath).Close();
System.IO.File.AppendText(dataPath).WriteLine("this is before save");

1 Ответ

1 голос
/ 27 сентября 2019

Просто используйте это:

//System.IO.File.CreateText(dataPath).Close();
System.IO.File.AppendText(dataPath).WriteLine("this is before save");

CreateText () будет каждый раз создавать новый пустой файл.

AppendText () будет создавать файл при необходимости.

Но у вас есть утечка файловых дескрипторов здесь.Appendtext возвращает TextWriter, который должен быть закрыт.

Вместо того, чтобы это исправить, рассмотрите возможность использования надежных пакетов регистрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...