Сведения о вопросе

Killer

14:19, 9th August, 2020

Лучшая архитектура для обработки изменений файловой системы?

Просмотров: 442   Ответов: 2

Вот такой сценарий:

Я пишу приложение, которое будет следить за любыми изменениями в определенном каталоге. Этот каталог будет заполнен тысячами файлов в минуту каждый с "almost" уникальным GUID. Формат файла такой:

GUID.dat где GUID = = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (внутреннее содержимое не имеет отношения, но это просто текстовые данные)

Мое приложение будет представлять собой форму, которая имеет одно текстовое поле, которое показывает все файлы, которые добавляются и удаляются в режиме реального времени. Каждый раз, когда появляется новый файл, я должен обновить textbox с этим файлом, но сначала я должен убедиться, что этот полу-уникальный GUID действительно уникален, если это так, обновите textbox с этим новым файлом.

Когда файл удаляется из этого каталога, убедитесь, что он существует, а затем удалите его, обновите textbox соответствующим образом.

Проблема в том, что я использую его .NET filewatcher и кажется, что есть внутренний буфер, который взрывается каждый раз, когда входит (buffersize + 1)-й файл. Я также попытался сохранить внутренний список в своем приложении и просто добавить каждый файл, который входит, но позже выполните проверку unique-GUID, но без кубиков.



  Сведения об ответе

screen

02:02, 20th August, 2020

Пара вещей, которые у меня в голове:

  • Если guid не уникален, не будет ли он перезаписывать файл с тем же именем или проверка основана на поиске, который выполняет некоторые внешние действия (например, проверяет архив)? (то есть это YAGNI момент?)
  • Я использовал FileSystemWatcher раньше с довольно хорошим успехом, можете ли вы дать нам некоторые идеи о том, как вы на самом деле делаете вещи?
  • Когда вы говорите "no dice" при работе с вашим пользовательским списком, в чем была проблема? И как вы проверяли изменения файловой системы без FileSystemWatcher?!

Извините, пока нет ответа, просто хотелось бы узнать больше о проблеме :)


  Сведения об ответе

прога

11:18, 18th August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться