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) и посмотреть, работает ли она

Другие вопросы по тегам