Вопрос

У меня есть задача для реализации службы с поведением, как этот. Мой вопрос:

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

Кроме того, я могу остановить эту услугу, а затем начать его через несколько дней, он продолжает работать. У него есть своя база данных с информацией о файлах?

Спасибо

Это было полезно?

Решение

Обычно индексация-сервис остается на заднем плане, используя WaitForSingleObject / WaitForMultipleObjects на ручках, созданных звонками на FindFirstChangeNotification. Отказ Если вы хотите поддержать, что служба индексации может быть выключена (или использоваться для уже существующего каталога), вы обязательно должны хранить временную метку вашего последнего индекса в каждом файле. Вы можете сравнить это с LastrriteTime. данного файла.

Редактировать: вы должны использовать Readdirectorychangesw. И другой нить, который асинхронно индексирует файлы, чтобы не пропустить никаких изменений. Вы можете либо вызывать новые потоки для каждого файла для указателя (дорого) или использовать очередь задания и фиксированное количество рабочих потоков (предпочтительно 1 или 2)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top