我的程序需要一个错误事件的日志文件。我专门写了一个方法然后自动写入日志文件。但是最后每次到这个方法里边程序就死了。显示我的那个日志文件被其他进程所使用,我的程序里确实是另一个进程也有向这个文件写入,但我能保证写入绝对不会是同时进行的。我怀疑是不是我的文件用完之后没有关闭呀!  上代码!
 void LogWrite(string message)
        {
            DateTime tmpdate = DateTime.Now;
            string Path = "C:\\" + tmpdate.Year + "-" + tmpdate.Month + "-" + tmpdate.Day + ".log";
            FileInfo fi1 = new FileInfo(Path);            if (fi1.Exists)
            {
                StreamWriter sw = fi1.AppendText();
                sw.WriteLine("########");
                sw.WriteLine(message);
                sw.WriteLine("########" + DateTime.Now);
                sw.Close();
            }
            else
            {
                fi1.Create();
                StreamWriter sw = fi1.AppendText();
                sw.WriteLine("########");
                sw.WriteLine(message);
                sw.WriteLine("########" + DateTime.Now);
                sw.Close();
            }
        }

解决方案 »

  1.   

       sw.Close();这句就是关闭流吧,哪如何关闭文件呢?
      

  2.   

    void LogWrite(string message)
            {
                DateTime tmpdate = DateTime.Now;
                string Path = "C:\\" + tmpdate.Year + "-" + tmpdate.Month + "-" + tmpdate.Day + ".log";
                FileStream fs = new FileStream(Path , FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
    StreamWriter sw = new StreamWriter(fs);
                    sw.WriteLine("########");
                    sw.WriteLine(message);
                    sw.WriteLine("########" + DateTime.Now);
                    sw.Close();
    }