我已经创建了一个文本文件来保存该文件中的错误。我有一个按钮,一旦按下,就会产生一个应该保存到文件的错误。但是,如果我按下按钮两次,它将覆盖生成的第一个错误,因为文件的内容被覆盖。我想生成另一个单独的文件来保存新的错误。应为每个新错误生成一个新文件。C#创建一个文本文件包含错误日志
在此先感谢
我已经创建了一个文本文件来保存该文件中的错误。我有一个按钮,一旦按下,就会产生一个应该保存到文件的错误。但是,如果我按下按钮两次,它将覆盖生成的第一个错误,因为文件的内容被覆盖。我想生成另一个单独的文件来保存新的错误。应为每个新错误生成一个新文件。C#创建一个文本文件包含错误日志
在此先感谢
private void SaveErrorMessage(string errorMessage)
{
string errorFile = null;
for(int x = 0; x < Int32.MaxValue; ++x)
{
errorFile = string.Format(CultureInfo.InvariantCulture, "error-{0}.txt", x);
if(!System.IO.File.Exists(errorFileTest))
{
break;
}
}
File.WriteAllText(errorFile, errorMessage);
}
这将覆盖你已经Int32.MaxValue文件后,最后一个文件,但会采取一会儿。
另一种(也许更好)的方法是简单地附加到文件,而不是创建一个新的。
您可能还想考虑使用更强大的日志记录解决方案,如log4net。
简单的使用方法:FileExists Method然后如果存在选择一个新的名字。或者,您可以将其追加到文件中。
PSUDO:
public string checkFileName(string fileName){
if(File.Exists(fileName)){
/Pick a new one
newFileName= fileName + DateTime.Now.ToLongDateString()
return checkFileName(newFileName)
}
return fileName
}
这可能是完美的链接,你How to Open and Append a log file
Creating file in C#可能是你在找什么。
您可以在文件名中添加时间戳,在这种情况下您每次都会得到新文件。
所以你想为你的程序中发生的每个错误生成一个唯一的文件名?可能最简单的方法是使用错误发生时的日期/时间来命名文件。在您被写入文件中的函数,你会想名字像这样的文件:
string filename = LogPath + DateTime.Now.ToString("yyyyMMdd.HHmmss") + ".err";
哪里LOGPATH是通向你想的错误文件写入该文件夹。
所以,如果我点击100次按钮,你想要创建100个文件。你为什么要这么做? – 2011-06-09 12:59:32
真正的问题是,为什么U(@AshBurlaczenko)想要它?你是用户;) – Nix 2011-06-09 13:20:36
为什么人们会问为什么有人想做点什么。这个网站不是关于理由,而是关于问题! – 2011-06-09 13:58:14