2012-04-24 64 views
0

IM使用了不少streamwrtier在我的应用程序,而这一次suppsoed登录程序正在运行,但目前它仅创建全无写进去的文件,而出现这种情况的错误:StreamWriter的工作不C#

if(File.Exists(currentLog))//currentLog = "Path\\Log.txt" 
     { 
      using (var fileStream = File.Open(currentLog,FileMode.Open)) 
      { 
       StreamWriter ErreurStreamWriter = new StreamWriter(fileStream); 
       ErreurStreamWriter.WriteLine("{0}",e.Message); 
       ErreurStreamWriter.WriteLine("-------------------------------"); 
      } 
     } 
     else 
     { 
      using (var fileStream = File.Create(currentLog)) 
      { 
       StreamWriter ErreurStreamWriter = new StreamWriter(fileStream); 
       ErreurStreamWriter.Write("Liste des erreurs :"); 
       ErreurStreamWriter.WriteLine("{0}", e.Message); 
       ErreurStreamWriter.WriteLine("-------------------------------"); 
      } 
     } 

我失去的东西在这里很明显?任何帮助将是巨大的,写后感谢

+2

'FileMode.Append'?另外,我建议忘记的FileStream和直接使用的StreamWriter通过日志文件的路径传递作为唯一的参数 – musefan 2012-04-24 07:31:14

+6

你永远不会关闭/刷新的StreamWriter – CodesInChaos 2012-04-24 07:32:07

+0

@CodeInChaos 使用()块确实是通过调用IDispose通话间接关闭部分。 – Zenwalker 2012-04-24 07:57:30

回答

4

可能需要刷新(),或尝试存在

+0

确实><我傻 – WizLiz 2012-04-24 07:35:14

2

试试这个

 using (var fileStream = File.Open(currentLog, FileMode.Open)) 
     { 
      using (StreamWriter erreurStreamWriter = new StreamWriter(fileStream)) 
      { 
       erreurStreamWriter.WriteLine("{0}", e.Message); 
       erreurStreamWriter.WriteLine("-------------------------------"); 
      } 
     } 

基本上我认为发生的事情是,当追加的流作家永远不会刷新到文件流中。