Java détecte les changements dans le système de fichiers

J’ai un dossier dans lequel de nouveaux fichiers sont continuellement sauvegardés. En Java, quel est le meilleur moyen de détecter les modifications apscopes au système de fichiers (c’est-à-dire un dossier spécifié dans lequel les fichiers sont vidés) et d’append les fichiers structure de données en queue afin que je puisse traiter séquentiellement chaque fichier entrant.

Je connais la fonction listFiles () de la classe File, mais je ne peux obtenir que des fichiers disponibles à un instant donné. Bien sûr, je peux interroger en permanence le dossier et obtenir la liste des fichiers qu’il contient à l’aide d’un fil de discussion. Mais est-ce la meilleure façon ou existe-t-il une meilleure façon de procéder?

L’interrogation continue est le moyen de le faire en Java dès maintenant – même si l’interrogation n’est pas trop fréquente, l’opération peut être assez lourde si le répertoire contient beaucoup d’entrées.

JDK 7 aura une API spécifique à cette tâche. Java.nio.file.WatchFile

Il n’y a malheureusement pas de moyen standard de faire cela jusqu’à ce que JDK7 soit sorti. Toutefois, certaines bibliothèques disponibles sur Internet utilisent les fonctions natives de différents systèmes d’exploitation pour le faire.

Les bibliothèques que j’ai examinées sont jPoller et jNotify, mais j’ai fini par interroger simplement le répertoire, ce qui était intéressant pour moi lorsque j’ai dû le faire.