Question

J'ai une tâche de mettre en œuvre un service avec un comportement comme celui-ci. Ma question est:

Comment le service d'indexation des fichiers se rappeler c'était déjà indexé et ce non, quels fichiers ont changé et la nécessité de les ré-indexation?

De plus, je peux arrêter ce service, puis démarrer après quelques jours, il continue de travailler. At-il sa propre base de données avec des informations sur les fichiers?

Merci

Était-ce utile?

La solution

Habituellement, les séjours de service d'indexation en arrière-plan à l'aide WaitForSingleObject / WaitForMultipleObjects sur les poignées créé par des appels à FindFirstChangeNotification. Si vous voulez soutenir que le service d'indexation peut être arrêté (ou être utilisé pour un répertoire déjà existant), vous devriez certainement stocker l'horodatage de votre dernier run index sur chaque fichier. Vous pouvez comparer les LastWriteTime du fichier donné.

EDIT: vous devez utiliser ReadDirectoryChangesW et un autre thread qui indexe les fichiers de manière asynchrone pour être sûr de ne pas manquer aucun changement. Vous pouvez soit réapparition de sujets pour chaque fichier index (coûteux) ou en utilisant une file d'attente et une quantité fixe de threads de travail (1 ou 2 de préférence)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top