看看我的代码错在哪里???
public void log(string str)
        {
            string Name = DateTime.Now.ToShortDateString();
            string path = Server.MapPath("log/");
            FileInfo fs = new FileInfo(path + Name + ".log");            if (!fs.Exists)
            {
                fs.CreateText();
            }            using (StreamWriter sw = fs.AppendText())
            {
                sw.WriteLine(str);
                sw.Flush();
                sw.Close();
                sw.Dispose();
            }
        }

解决方案 »

  1.   

    第一调用没问题!!第二次开始就报错了···
    D:\WorkFlow\workFlow\log\2010-8-31.log”正由另一进程使用,因此该进程无法访问该文件。哪里没关??
      

  2.   


    using( FileInfo fs = new FileInfo(path + Name + ".log"))
    {            if (!fs.Exists)
                {
                    fs.CreateText();
                }            using (StreamWriter sw = fs.AppendText())//这一行,应该是从fs获取的stream吧。具体忘了
                {
                    sw.WriteLine(str);
                }
    }
      

  3.   

    找到问题所在了如果文件存在了的话,则没有问题!··如果我删除了今天的log,然它再生成就报错··
      

  4.   

    如果删除后,第一次调用没有问题,
    第二次就报 using (StreamWriter sw = fs.AppendText()) 这里的错了再点击多几次就好了··难道是 CreateText 还为释放???
      

  5.   

    FileInfo fs = new FileInfo(path + Name + ".log");            if (!fs.Exists)
                {
                    StreamWriter sw = fs.CreateText();
                    sw.Close();
                }
      

  6.   

    fs.CreateText();
    改为
    using (StreamWriter sw = fs.CreateText())
    {
    }
      

  7.   

    我昨晚回去看看了msdn也找到了,呵呵~~不过没你们快··结贴了~if (!fs.Exists)
                {
                    FileStream fileCreat = fs.Create();
                    fileCreat.Close();
                }