Довольно странно. Итератор правильно реализует IDisposable, он вызывает FindClose (). Параметры AllDirectories могут стать источником проблем, поскольку FindFileFirst / Next позволяет выполнять итерации только одного каталога. Но я вижу, что итератор делает правильные вещи, он сохраняет открытой только один дескриптор при итерации структуры каталогов.
В статье MSDN конкретно упоминается "если есть открытый дескриптор, который остается в одном из перечисленных каталогов или файлов". FindFileFirst / Next не оставит дескриптор открытым. Но небрежный пользовательский код, который читает файлы при перечислении, делает. «Операция удаления файла или каталога» тоже актуальна, я думаю, что поведение изменилось в Vista. DeleteFile () может быть успешным, но файл фактически не исчезнет, пока все дескрипторы файла не будут закрыты.
Нам нужен кто-то для добровольной работы, а , а не для реализации этого кода в XP. Я думаю, мы скоро найдем кого-нибудь :) 1007 *