将文本保存到文件



我有一个问题让我发疯。我有一个程序将错误消息保存到对象的字符串中,然后将字符串写入 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"));

相关内容

  • 没有找到相关文章