IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Évènement lorsque cela "bouge" dans un dossier


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut Évènement lorsque cela "bouge" dans un dossier
    Bonjour,

    Désolé pour le titre un peu bizarre, mais c'est pas facile d'exprimer ce que je cherche à faire.
    En effet, est-il possible de détecter lorqu'un fichier est créé dans un dossier et de déclencher un évènement?

    En guise d'exemple, je voudrais charger dans une JList les fichiers d'un dossier. Cependant, dans ce dernier, des fichiers peuvent êtres créés hors de l'application Java (logiciel métier tiers). Ce que je voudrais c'est un genre de thread qui surveille l'évolution du contenu du dossier.

    Je me suis dit : "fait donc un thread qui va lister toutes les n minutes/secondes le contenu, et si tu vois que la liste est modifiée, fait ton action". Trop lourd à mon goût je pense (le dossier est sur le réseau) et pas vraiment en temps réel (sauf si on met un truc du genre 1 seconde de "refresh" mais là ca devient carrément lourd).

    Le top serait que l'évènement soit ammené par un petit signe de Windows et non par une surveillance rapprochée de Java.

    Je sais pas si je suis clair, utopiste ou complètement naîf. Dans tout les cas, n'hésitez pas à me faire part de vos remarques

    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    C'est lourd, mais c'est malheureusement la solution... La seule manière de savoir si le contenu d'un dossier réseau a changé, c'est de lire celui-ci.

    L'idée du thread vérifiant toutes les n secondes son contenu est donc bonne.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Bon, c'est dommage mais si c'est la seule solution....
    Vu que les fichiers sont ajoutés par l'utilisateur du logiciel, un zouli bouton "refresh" fera l'affaire

    Merci pour ton aide !!

  4. #4
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Ce que tu souhaites sera possible avec Java 7.

    En attendant, il faudra te contenter d'un refresh comme le dit CyberChouan.

    Tu peux également t'en tirer si ça ne te dérange pas de passer par une bibliothèque native (ou te la programmer toi même). Il y a à ma connaissance au moins une bibliothèque native qui permet de surveiller les evenement du système de fichiers : jxfilewatcher(payante).

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Alors vivement java 7

    Merci pour ces éclaircissements !

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Oui alors attention quand même avec les dossiers réseaux : même les APIs natives ne sont pas très fiables pour signaler les changements.

    En gros, ça dépend si le dossier réseau gère ça ou pas. (Test simple : avoir une fenêtre de l'explorer qui affiche le contenu du dossier, faire changer le contenu par quelqu'un d'autre : combien de temps met la fenêtre pour refléter le changement, si elle le fait ? À noter que même si ça marche, c'est souvent parce qu'un thread rafraîchit régulièrement le contenu. Alors la différence, hein...)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Je resterais sur le bouton "refresh" Je préfère faire confiance à l'utilisateur, et puis pour de nombreuses raisons cela s'est révélé beaucoup plus pratique

    Merci à tous, j'apprends beaucoup grace à vous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/05/2012, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo