Question

pour un projet récent que je dois détecter les changements du système de fichiers sur un partage Samba cartographiés à partir de Java sur Windows: Creates, mises à jour et supprime. En ce moment je suis en utilisant un sondage de dossier qui tient à jour une liste des fichiers et leur horodatage modifié pour rechercher des événements.

Mais mon problème est que ce sondage dossier ne jette un œil dans le dossier à certains moments (toutes les 10 secondes par exemple), donc un fichier mis à jour peut être mis à jour deux fois entre deux sondages sans reconnaître.

Est-il possible d'obtenir des événements de fenêtres à l'intérieur de Java chaque fois qu'un événement de fichier occours sur ce mappep partage Samba?

Merci!

Était-ce utile?

La solution

Java n'a rien dans le courant api IO pour traiter les notifications de fichiers de l'O / S.

Java 7 aura une nouvelle API IO JSR-203 qui a un API fichier montre qui sera soit native d'utilisation O / S notifications ou vote si les notifications ne sont pas pris en charge pour détecter les changements de fichiers.

En attendant, vous pouvez regarder pour voir si quelqu'un a mis en place une bibliothèque qui vous permet de connecter le notifications O / S via JNI. Je pense que IntelliJ IDEA utilise une lib native à cette fin.

Recherche sur Sourceforge J'ai trouvé jfilenotify mais je ai jamais utilisé.

Sinon, vous pouvez augmenter votre fréquence d'échantillonnage (mais cela va commencer à marteler votre système de fichiers) ou changer la façon dont vos fichiers sont écrits en ajoutant un numéro de version au nom du fichier / dossier afin que vous puissiez facilement dire quand quelque chose a changé.

Autres conseils

Selon cette entrée de forum TeamDev JNIWrapper est capable de faire ce que je veux. Je viens d'acheter une copie. Merci et

Greetz, Ghad

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