7
votes

Comment puis-je recevoir des événements de système de fichiers Windows en Java?

J'ai besoin de savoir quand un nouveau fichier apparaît dans un répertoire. De toute évidence, je pourrais interroger périodiquement le système de fichiers, mais qui a tous les inconvénients normaux des mécanismes de vote.

Je sais que Supporte les événements du système de fichiers , et ce projet est déjà contraint de la plate-forme Windows par d'autres exigences.

Quelqu'un a-t-il une expérience de réception d'événements de système de fichiers Windows à l'intérieur d'une JVM? Si oui, quelles sont les meilleures pratiques, motifs et / ou bibliothèques que vous avez utilisés?

Un rapide Google devient Cette bibliothèque . Est-ce que quelqu'un a de l'expérience avec elle (ou tout autre) qu'ils seraient disposés à partager?


5 commentaires

Cette question a au moins 2 dupliquées sur le débordement de la pile


DUP possible de Stackoverflow. com / questions / 730186 / ...


Un autre DUP possible: Stackoverflow.com/Questtions/1096404


Merci pour les liens Dupe - je n'ai pas trouvé ceux avec une recherche (apparemment trop bref). J'ai voté pour fermer, en particulier pour 1096404.


Dupliquer possible de Existe-t-il un moniteur de système de fichiers sophistiqué pour Java qui est gratuit ou open source?


6 Réponses :


1
votes

Quelque chose de très bas niveau et spécifique au système d'exploitation comme celui-ci au besoin de code natif (selon le lien que vous mentionnez). Cette bibliothèque semble relativement petite, donc dans le pire des cas, vous pouvez probablement résoudre tout problème si votre C ++ est suffisamment bon.

Si vous pouvez tout éviter, je suggérerais d'utiliser un code natif - bibliothèque ou non. Ce qui est si exigeant de votre scénario que vous ne pouvez pas avoir un sondage de fil de fond?


0 commentaires

7
votes

Je pense que c'est l'une des caractéristiques essentielles de Java 7 lorsqu'elle est plus disponible. Exemple de code de Sun's Blog sur Java 7:

Importer Java.nio. File.StandardWatchEventkind. *; xxx


1 commentaires

Si cela est pour le code de production Java 7 ne devrait pas être utilisé. Ce n'est pas sorti.



0
votes

Si vous n'utilisez pas JDK7, vous devrez utiliser JNI.


0 commentaires

2
votes

Pour Java 6 ou une utilisation plus ancienne JNA 's com.sun.jna.platform.win32. FileMonitor.


0 commentaires

1
votes

La recommandation de Jnotify de Brian Agnew est une bonne: Y a-t-il un moniteur de système de fichiers sophistiqué pour Java qui est gratuit ou open source?

Description de http://jnotify.sourceforge.net/ :

Jnotify est une bibliothèque Java qui permet une application Java d'écouter des événements système de fichiers, tels que:

  • Fichier créé
  • fichier modifié
  • fichier renommé
  • fichier supprimé

0 commentaires

1
votes

Vous pouvez utiliser OpenSource JPollar Framework pour interroger le répertoire des intervalles de temps. Il permet également un vote à base de temps.


1 commentaires

Ce serait génial si vous fournissez un lien pour compléter la réponse