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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2019
    Messages : 5
    Points : 1
    Points
    1

    Par défaut FileSystemWatcher ne fonctionne pas

    Bonjour j'ai un filesysteme watcher mais quand je lance ma windows form ça ne fonctionne pas.

    ci-dessous mon code:

    Code VB.NET : 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
    Imports System.IO
    Public Class Form1
     
        Private Sub FileSystemWatcher1_Changed(sender As Object, e As IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed
            MsgBox("un fichier changé")
     
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            'System.Diagnostics.Process.Start("H:\2019\Placements hebdo - Pointages\Tableau accueil\Tableau affichage.xlsm")
            MsgBox(FileSystemWatcher1.Filter)
        End Sub
     
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim filePath1 As String
            Dim num As Integer
            num = DatePart("WW", Now, vbSunday, vbFirstJan1)
            filePath1 = "PlacementsABC s" & num & "2019.xlsm"
     
     
            FileSystemWatcher1.Filter = Path.GetFileName(filePath1)
     
        End Sub
    End Class

  2. #2
    Membre averti Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    février 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : février 2006
    Messages : 313
    Points : 386
    Points
    386

    Par défaut

    Bonjour,

    Ce site est une mine d'info : Tuto FileSystemWatcher en VB.NET .

    S'il ne déclenche pas au changed, vérifier dans un premier temps que le Path qu'il doit surveiller est bien spécifié, et vérifier que le Filter fourni correspond à quelque chose de valide.

    PS : Pensez à utiliser la balise CODE la prochaine fois, sinon c'est tout moche et pas pratique à lire.
    Tant va la cruche à l'eau qu'à la fin y'a plus d'eau.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2019
    Messages : 5
    Points : 1
    Points
    1

    Par défaut suite

    Bonjour,
    désolé pour la balise je suis nouveau sur le forum.
    Je rencontre plusieurs problèmes premièrement j'utilise un filtre par exemple * 302019.xlsm
    qui fonctionne quand le fichier est sur mon bureau.
    cependant quand le path est sur le serveur 'h:/mondossier/monsousdossier.../monfichier.xlsm cela ne fonctionne pas alors que le filtre est le même, j'en déduis que le problème viens du path !
    sauf que quand je change le filtre par *.xlsm et que j'ouvre le même fichier ! cela fonctionne de nouveau ! donc le problème c'est le path ? le filtre ? la combinaisons des deux ? je ne sais pas...

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 612
    Points : 6 069
    Points
    6 069
    Billets dans le blog
    1

    Par défaut

    H: est-il un disque réseau ?
    Si oui, FileSystemWatcher est incapable de surveiller un lecteur réseau.
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2019
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    Oui !

    j'arrive a surveiller sur le reseaux si je passe le "filter" sur *.xlsm

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 612
    Points : 6 069
    Points
    6 069
    Billets dans le blog
    1

    Par défaut

    Le problème de FileSystemWatcher sur le réseau, c'est que l'OS est incapable de notifier l'objet des modifications du disque en temps réel.
    Ainsi, tu as très rapidement des débordements dans le buffer des notifications.

    Notez qu’un FileSystemWatcher peut manquer un événement lorsque la taille de mémoire tampon est dépassée. Pour éviter de manquer des événements, suivez ces instructions :
    Augmenter la taille du tampon en définissant le InternalBufferSize propriété.
    Évitez de regarder les fichiers portant des noms de fichiers longs, car un nom de fichier long contribue au remplissage de la mémoire tampon. Pensez à renommer ces fichiers à l’aide des noms plus courts.
    Gardez votre événement aussi court que possible du code de gestion.
    Par conséquent, un certain nombre de notifications passent à la trappe.

    Tu peux modifier la taille du buffer mais :
    La taille maximale que vous pouvez définir pour le InternalBufferSize propriété pour la surveillance d’un répertoire sur le réseau est de 64 Ko.
    Sachant que WINDOWS travaille en UNICODE-16, ça ne fait que 32000 caractères au final, ce qui reste très petit (une même modification sur un fichier peut déclencher plusieurs notifications).

    Accessoirement, passer par un partage réseau, pour peut que ce soit en SMB 1.0 ou autre, il n'est pas impossible que tu reçoives les notifications sur le nom court dans certains cas :
    Dans certains systèmes, FileSystemWatcher signale les modifications apportées aux fichiers à l’aide du format de nom de 8.3 fichier court. Par exemple, une modification apportée à « LongFileName.LongExtension » peut être signalée comme « LongFi ~. LON ».
    Du coup à ce moment le filtre "*.LongExtension" ne sera jamais déclenché.

    Bref, utiliser FileSystemWatcher sur un disque réseau est une mauvaise idée, aussi bien parce que ça marche mal, mais aussi ne serait-ce que parce que ça génère un trafic réseau en permanence (le poste passe son temps à interroger le serveur pour vérifier l'horodatage des fichiers).

    Il vaut mieux avoir un module sur le serveur qui surveille l'activité, et qui notifie par une connexion TCP les différents clients intéressés.
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2019
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    merci pour ton aide j'adore ta réponse !

    le but est de trouver un événement déclencheur pour mon application donc javais pensé au filesysteme watcher ... enfaîte il me faut déclencher automatiquement un événement quand un fichier est modifié vous avez des idées ? dans le cas ou le fichier est modifié j'ouvre un fichier excel qui exécute une macro. ( je suis meilleur en excel vba que en VB C++ etc ...)

  8. #8
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 612
    Points : 6 069
    Points
    6 069
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par naubinTRV Voir le message
    merci pour ton aide j'adore ta réponse !

    le but est de trouver un événement déclencheur pour mon application donc javais pensé au filesysteme watcher ... enfaîte il me faut déclencher automatiquement un événement quand un fichier est modifié vous avez des idées ? dans le cas ou le fichier est modifié j'ouvre un fichier excel qui exécute une macro. ( je suis meilleur en excel vba que en VB C++ etc ...)
    Par quoi est modifié le fichier ?
    Pour quoi ne pas faire macro dans le fichier justement sur OnSave ?

    Que se passe-t-il si plusieurs surveillent le même fichier ?
    Et si le fichier est modifié à un moment ou personne ne le surveille ?
    On ne jouit bien que de ce qu’on partage.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2019
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    j'ai deux ordinateurs, le premier à L'app bureau contenant le filesystemewatcher surveille un dossier avec une dizaine de fichiers PLacementABC s??2019 (?? = NO.SEMAINE). il à pour événement change, l'ouverture d'un fichier excel qui déclenche une macro automatiquement a l'ouverture.
    quand le fichier de la semaine correspondante est modifié dans le dossier, mon App se déclenche sur le pc 1.

    c'est avec le PC 2 que je vais faire mes modifications de placements des employées sur mon fichier PLacementABC s??2019.

    donc le PC1 prends les informations du PC2 grace au filesystemewatcher qui décence une macro d'un fichier excel.

    je voulais mettre le filtre sur le fichier de la semaine actuelle pour que le déclenchement de l'événement ne soit pas redondent.

    cela me permet d'afficher ce que je veux sur le PC 2 en automatique
    Nom : 2019-07-29_10-32-55.jpg
Affichages : 7
Taille : 39,1 Ko

Discussions similaires

  1. FileSystemWatcher ne fonctionne pas sur Vista
    Par cyrille37 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 31/12/2007, 11h55
  2. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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