无法使用C#在txt文件上写入文本

Kin*_*her 4 c# winforms

我试图在文本文件上写一个字符串,但它没有写任何东西,没有例外.我的代码是:

 public void CreateLog(string sLogInfo)
 {
    string sDestionation = null;

    string sFileName = DateTime.Now.ToString("yyyyMMdd") + "_log.txt";
    sDestionation = @"D:\Log\";
    //sDestionation = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + ConfigurationManager.AppSettings["DestinationPath"].ToString();
    string sFile = sDestionation + sFileName;

    if (!System.IO.Directory.Exists(sDestionation))
    {
       System.IO.Directory.CreateDirectory(sDestionation);
    }
    StreamWriter oWriter = null;
    if (!System.IO.File.Exists(sFile))
    {
       oWriter = File.CreateText(sFile);
    }
    else
    {
       oWriter = File.AppendText(sFile);
    }
    oWriter.WriteLine(DateTime.Now.ToString() + ": " + sLogInfo.Trim());
 }
Run Code Online (Sandbox Code Playgroud)

Art*_*kov 6

StreamWriterIDisposable对象.你应该在使用后处理它.为此你可以使用这样的using语句:

    public void CreateLog(string sLogInfo)
    {
        string sDestionation = null;

        string sFileName = DateTime.Now.ToString("yyyyMMdd") + "_log.txt";
        sDestionation = @"D:\Log\";
        var sFile = sDestionation + sFileName;

        if (!Directory.Exists(sDestionation))
        {
            Directory.CreateDirectory(sDestionation);
        }
        using (var oWriter = new StreamWriter(sFile, true))
            oWriter.WriteLine(DateTime.Now + ": " + sLogInfo.Trim());
    }
Run Code Online (Sandbox Code Playgroud)