.NET Core 2.2 Razor 页面代码隐藏创建文本文件,但无法将简单行写入文件
.NET Core 2.2 Razor Page Code Behind Creates Text File, But Fails to Write Simple Line To File
不确定我做错了什么。我可以创建一个使用现在日期和时间命名的文本文件。我写入文件失败。如果我不在 CreateText 的末尾放置“.Close()”,它表示文件在尝试写入时已被另一个进程打开。使用“.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");
只需使用这个:
//System.IO.File.CreateText(dataPath).Close();
System.IO.File.AppendText(dataPath).WriteLine("this is before save");
CreateText() 每次都会创建一个新的空文件。
AppendText() 将在必要时创建文件。
但是你在这里泄露了文件句柄。 Appendtext returns 需要关闭的 TextWriter。
与其修复它,不如考虑使用可靠的日志记录包。
不确定我做错了什么。我可以创建一个使用现在日期和时间命名的文本文件。我写入文件失败。如果我不在 CreateText 的末尾放置“.Close()”,它表示文件在尝试写入时已被另一个进程打开。使用“.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");
只需使用这个:
//System.IO.File.CreateText(dataPath).Close();
System.IO.File.AppendText(dataPath).WriteLine("this is before save");
CreateText() 每次都会创建一个新的空文件。
AppendText() 将在必要时创建文件。
但是你在这里泄露了文件句柄。 Appendtext returns 需要关闭的 TextWriter。
与其修复它,不如考虑使用可靠的日志记录包。