我有以下代码片段,它从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);
}
}
但是......生成的文件不会在磁盘上创建,也不会抛出任何异常。它就像写入磁盘的文本一样消失得无影无踪。此代码在另一个程序集中工作,而不是在我将其移植到的服务中。在这种情况下,我不知道为什么文本不能写入磁盘,非常感谢您解决此问题的任何帮助。
答案 0 :(得分:2)
您是否考虑过使用File.WriteAllLines
? http://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)
我重新启动,一切都按预期开始工作。我真的没有解释发生了什么,但我猜我的电脑是这里的问题,而不是编码器错误。感谢帮助人员