Есть много сообщений в Интернете о функции ReadDirectoryChangesW API, где отсутствуют файлы, когда есть много активности файла. Большинство винит скорость, с которой вызывается цикл функции ReadDirectoryChangesW. Это неверное предположение. Лучшее объяснение, которое я видел, находится в следующем сообщении, комментарий в понедельник, 14 апреля 2008 г. 2:15:27 PM
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/4465cafb-f4ed-434f-89d8-c85ced6ffaa8/
Резюме состоит в том, что функция ReadDirectoryChangesW сообщает об изменениях файла, поскольку они оставляют очередь на запись в файл, а не по мере добавления. И если слишком много добавлено перед тем, как быть совершенным, вы потеряете уведомление о некоторых из них. Вы можете увидеть это с вашей реализацией, если вы просто напишете программу, чтобы быстро создать 1000+ файлов в каталоге. Просто подсчитайте количество уведомлений о событиях в файле, и вы увидите, что есть моменты, когда вы не получите их всех.
Вопрос в том, нашел ли кто-нибудь надежный метод использования функции ReadDirectoryChangesW без необходимости сбрасывать объем каждый раз? Это недопустимо, если пользователь не является администратором, а также может потребоваться некоторое время для завершения.