0

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

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

4 回答 4

2

你考虑过使用File.WriteAllLines吗?http://msdn.microsoft.com/en-us/library/dd383693.aspx。我的经验对于这些类型的操作来说要干净得多。有助于缩小错误的可能性。

于 2013-06-24T19:52:38.350 回答
1

我认为你i的没有增加。i++在循环内做。也这样做。foreach 行,写行,循环外刷新。也删除removeat

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

writer.Flush();
于 2013-06-24T19:43:15.420 回答
0

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

于 2013-06-24T19:47:41.030 回答
0

我重新启动,一切都开始按预期工作。我对发生的事情并没有真正的解释,但我猜我的电脑是这里的问题,而不是编码器错误。谢谢你们的帮助

于 2013-06-24T20:00:17.717 回答