TextWriter не записывает на диск, без ошибок
У меня есть следующий фрагмент кода, который берет строки из списка и записывает их на диск:
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 ответа
Я перезагрузился и все заработало как положено. На самом деле у меня нет объяснения тому, что произошло, но я думаю, что здесь проблема с моим ПК, а не с ошибкой кодера. Спасибо за помощь, ребята
Рассматривали ли вы использование File.WriteAllLines
? http://msdn.microsoft.com/en-us/library/dd383693.aspx. Мой опыт намного чище для этих типов операций. Помогает сузить потенциал для ошибок.
Я думаю твой i
не увеличивается. Делать i++
внутри петли. Также сделай это. строка foreach, строка записи вне цикла. также удалить удаление
foreach(string line in messages) {
writer.WriteLine(line)
}
writer.Flush();
Проверьте учетные данные, которые вы использовали для запуска службы... Может быть, вы можете попробовать записать в какую-нибудь временную папку (например, C:\Temp) и посмотреть, работает ли она