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

VB.NET Discussion :

FileSystemWatcher fonctionne 1 fois ?


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut FileSystemWatcher fonctionne 1 fois ?
    Bonjour à tous,
    Je tombe devant un problème et n'arrive pas à le résoudre. J'en connais la cause, mais n'ai pas de solution. Si vous en avez une ça serait super cool.
    Mon probleme :
    - J'utilise un FileSystemWatcher pour détecter la création/effacement d'un fichier dans un répertoire distinct.
    - Lorsque le fichier est détecté, l'Event réalise un parsing de ce fichier (.xml).
    - Tant que le fichier est présent, une part du programme (un timer) est arrêté.
    - Lorsque le fichier est effacé, le programme reprend son court... (Timer.enabled = true...).

    Cette détection fonctionne la 1ere fois qu'il détecte le fichier (cycle de création/effacement).
    En revanche, lorsque le fichier est créée une 2eme fois, cela ne fonctionne plus et VB me renvoie une erreur comme quoi le fichier est déjà utilisé... humm!! ce qui n'est pas le cas.
    Ci-dessous le code du filesystemwatcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Imports System.IO
     
    Public Sub initFsWatcher()
            ' Répertoire à surveiller
            myFsWatcher.Path = mySetupData.xml_datas
            ' Surveille les sous répertoires
            myFsWatcher.IncludeSubdirectories = False
            ' Surveille tous les fichiers sans exception ou bien un fichier en particulier
            myFsWatcher.Filter = mySetupData.MatchDataFile
            ' Surveille les types d'évènements suivants = Changement sur le fichier (création/changement du fichier/renomage/effacement)
            myFsWatcher.NotifyFilter = NotifyFilters.FileName
            ' Permet de faire s'exécuter tous les EventHandlers dans le thread principal
            myFsWatcher.SynchronizingObject = Me
            ' Active la levée d'évènements par le FileSystemWatcher
            myFsWatcher.EnableRaisingEvents = True
     
            AddHandler myFsWatcher.Created, AddressOf myFsWatcher_Created ' Création d'un fichier
            AddHandler myFsWatcher.Deleted, AddressOf myFsWatcher_Deleted ' Effacement d'un fichier
        End Sub
     
    Public Sub myFsWatcher_Created(sender As System.Object, e As System.IO.FileSystemEventArgs) 'Handles myFsWatcher.Created
            ' Fichier trouvé dans le répertoire, lancement du parser... et arrêt d'un timer...
        End Sub
     
        Public Sub myFsWatcher_Deleted(sender As System.Object, e As System.IO.FileSystemEventArgs)
    		' ici la gestion quand le fichier est effacé.... relancement d'un timer...
        End Sub
    Afin de vérifier mon code, j'ai "remplacé" l'action du FileSystemWatcher par 2 boutons avec le même code que Sub myFsWatcher_Created et Sub myFsWatcher_Deleted. Cela fonctionne parfaitement...
    Donc mon probleme semble venir d'une ré-initialisation du Watcher, peut-être... ou bien ai-je oublié qlq chose dans le Sub initFsWatcher() ?
    Merci de votre aide.

    Patrick

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut
    Pas d'idées ????
    Cela m'ennuie terriblement car si je n'ai aps de solution, il va falloir que je ré-invente la roue avec un test If File.Exist... dans un timer.
    Merci de vous penchez sur mon probleme

    Patrick

Discussions similaires

  1. Macro fonctionnant 1 fois sur 2
    Par yamat dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/07/2008, 18h13
  2. Expression Régulière fonctionne une fois sur deux
    Par KoRiGaN44 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/07/2008, 19h07
  3. Réponses: 2
    Dernier message: 23/01/2008, 13h01
  4. Réponses: 5
    Dernier message: 14/09/2007, 12h02
  5. Requête qui fonctionne 1 fois sur 100
    Par nicotine002 dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2006, 11h42

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