我有一个问题让我发疯。我有一个程序将错误消息保存到对象的字符串中,然后将字符串写入 unloadContent() 中的文件。出于某种原因,我不断收到不支持的例外。下面是 unloadContent() 中的代码:
if (debug.getContent().Length > 0)
{
saveErrors save = new saveErrors();
if (Directory.Exists(System.IO.Directory.GetCurrentDirectory() + "\Errors")) ;
Directory.CreateDirectory(System.IO.Directory.GetCurrentDirectory() + "\Errors");
save.save(System.IO.Directory.GetCurrentDirectory().ToString() + "\Errors\errorLog_" + (System.DateTime.Now.ToString().Replace("/", "_")).Replace(" ","") + ".txt");
}
这是类保存错误中的代码:
public class saveErrors
{
private string mess = debug.getContent();
public void save(string fileName)
{
Debug.WriteLine(fileName);
using (StreamWriter sw = new StreamWriter(fileName))
{
sw.Write(mess);
sw.Close();
}
}
}
我对 C# 仍然有点陌生,所以任何帮助将不胜感激!
谢谢!
试试这个:
[Test]
public void SaveTextTest()
{
string relativePath=@"ErrorserrorLog_";
string directoryPath = System.IO.Path.Combine( System.IO.Directory.GetCurrentDirectory() , relativePath);
var directoryInfo = new DirectoryInfo(directoryPath);
if(directoryInfo.Exists==false)
directoryInfo.Create();
string fileName = System.DateTime.Now.ToString("yyyy-MM-dd_hh-mm-ss") + ".txt";
string path = System.IO.Path.Combine(directoryPath, fileName);
string textToSave = "This will be saved";
File.WriteAllText(path, textToSave);
}
要获取所需格式的 DateTime.ToString(),您可以传递一个格式字符串
save.save(System.IO.Directory.GetCurrentDirectory().ToString() + "\Errors\errorLog_" + (System.DateTime.Now.ToString().Replace("/", "_")).Replace(" ", "").Replace(":", "") + ".txt");
把它改成那个。您需要一个.Replace(":", "")
,因为 :
包含在代码的日期部分中,但在文件名中无效,因此您必须将其删除或替换为其他内容。
作为替代方案,您可以将日期格式化为:
save.save(System.IO.Directory.GetCurrentDirectory().ToString() + "\Errors\errorLog_" + System.DateTime.Now.ToString("yyyy-MM-dd_hh-mm-ss"));