Я нашел проблему. Я пишу библиотеку для ведения простого лога ошибок и аварий. Я объявил функции File.Open и т.п. не в функциональном блоке, а в его методе. Поэтому все содержимое переменных функций File.* очищалось с каждым циклом.

Кстати, а может быть есть готовая библиотека для простого логирования в текстовый файл?