Вот сценарий:
Я пишу приложение, которое будет следить за любыми изменениями в конкретном каталоге. Этот каталог будет заполняться тысячами файлов в минуту, каждый с «почти» уникальным GUID. Формат файла такой:
GUID.dat, где GUID == xxxxxxxxxxxxxxxxxxxxxxxxxxxxx (внутреннее содержимое не имеет значения, это просто текстовые данные)
Мое приложение будет представлять собой форму с одним текстовым полем, в котором будут отображаться все файлы, которые добавляются и удаляются в режиме реального времени. Каждый раз, когда приходит новый файл, мне приходится обновлять текстовое поле этим файлом, НО сначала я должен убедиться, что этот полууникальный GUID действительно уникален, если это так, обновите текстовое поле этим новым файлом.
Когда файл удаляется из этого каталога, убедитесь, что он существует, затем удалите его и соответствующим образом обновите текстовое поле.
Проблема в том, что я использовал .NET filewatcher, и мне кажется, что есть внутренний буфер, который взрывается каждый раз, когда приходит (buffersize + 1) -th файл. Я также пытался сохранить внутренний список в моем app и просто добавьте каждый входящий файл, но сделайте проверку уникального GUID позже, но без кубиков.





Пара вещей, которые у меня в голове:
Извините, что пока нет ответа, просто хотел бы узнать больше о проблеме :)
Я предлагаю вам взглянуть на вызов API SHChangeNotify, который может уведомлять вас обо всех видах событий оболочки. Чтобы отслеживать действия по созданию и удалению файлов, вы можете уделить особое внимание аргументам SHCNE_CREATE и SHCNE_DELETE.