TextWriter没有写入磁盘,没有错误

时间:2013-06-24 19:40:02

标签: c# .net-4.0 streamwriter disk-io

我有以下代码片段,它从List中获取行并将它们写入磁盘:

List<string> messages; // a list full of lines of text to write to file
using (System.IO.TextWriter writer = new System.IO.StreamWriter(stSessionStatusFile, true))
{
   int i = 0;
   while (i < messages.Count)
   {
      string line = messages[0];
      writer.WriteLine(line);
      writer.Flush();
      messages.RemoveAt(0);
   }
}

但是......生成的文件不会在磁盘上创建,也不会抛出任何异常。它就像写入磁盘的文本一样消失得无影无踪。此代码在另一个程序集中工作,而不是在我将其移植到的服务中。在这种情况下,我不知道为什么文本不能写入磁盘,非常感谢您解决此问题的任何帮助。

4 个答案:

答案 0 :(得分:2)

您是否考虑过使用File.WriteAllLineshttp://msdn.microsoft.com/en-us/library/dd383693.aspx。我的经验是这些类型的操作更清洁。有助于缩小发生错误的可能性。

答案 1 :(得分:1)

我认为你的i没有递增。在循环中执行i++。也这样做。 foreach行,写行,在循环外冲洗。同时删除removeat

foreach(string line in messages) {
  writer.WriteLine(line)
}

writer.Flush();

答案 2 :(得分:0)

检查您用于运行服务的凭据...也许您可以尝试写入某个临时文件夹(例如C:\ Temp)并查看它是否有效

答案 3 :(得分:0)

我重新启动,一切都按预期开始工作。我真的没有解释发生了什么,但我猜我的电脑是这里的问题,而不是编码器错误。感谢帮助人员