[WD14] Surveillez un répertoire sur le disque

Le
WD Inside
Bonjour,

Dans une table sont listés les fichiers présents dans un répertoire.
Comment rafraichir la table si un fichier change de taille ou qu'un
autre fichier est ajouté dans le réperoire

Je ne parle pas d'un timer qui rafraichi la table, ça je sais faire !

Cordialement
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Romain PETIT
Le #19686521
WD Inside avait prétendu :
Bonjour,

Dans une table sont listés les fichiers présents dans un répertoire.
Comment rafraichir la table si un fichier change de taille ou qu'un
autre fichier est ajouté dans le réperoire

Je ne parle pas d'un timer qui rafraichi la table, ça je sais faire !



Alors avec "FileSystemEventHandler" en .Net en branchant un évenement
OnChange.
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/308e792ddd633e87/
http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.changed.aspx

A+

--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
WD Inside
Le #19686511
"Romain PETIT" <a écrit dans le message >> Bonjour,


Alors avec "FileSystemEventHandler" en .Net en branchant un évenement
OnChange.
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/308e792ddd633e87/
http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.changed.aspx

A+



merci à toi
Gilles
Le #19687221
WD Inside a pensé très fort :
Bonjour,

Dans une table sont listés les fichiers présents dans un répertoire.
Comment rafraichir la table si un fichier change de taille ou qu'un
autre fichier est ajouté dans le réperoire

Je ne parle pas d'un timer qui rafraichi la table, ça je sais faire !



Et si tu veux faire sans .NET (et être sûr que ça marche partout)
Tu peux combiner les variables pour avoir les différentes surveillances
(J'ai écris ça rapidos, mais à priori, ça marche comme tu le souhaites
;))

FILE_NOTIFY_CHANGE_ATTRIBUTES est entier= 0x4
FILE_NOTIFY_CHANGE_DIR_NAME est entier= 0x2
FILE_NOTIFY_CHANGE_FILE_NAME est entier= 0x1
FILE_NOTIFY_CHANGE_SIZE est entier= 0x8
FILE_NOTIFY_CHANGE_LAST_WRITE est entier= 0x10
FILE_NOTIFY_CHANGE_SECURITY est entier= 0x100

FILE_NOTIFY_CHANGE_ALL est entier
=OUBinaire(OUBinaire(OUBinaire(OUBinaire(OUBinaire(0x4,0x2),0x1),0x8),0x10),
0x100)

hNote est entier
sRepertoire est une chaîne="d:test"
bVerifSousRepertoires est un booléen=Vrai
nFlags est un entier=FILE_NOTIFY_CHANGE_ALL
nTimeOut est un entier = -1


hNote = API("kernel32","FindFirstChangeNotificationA",sRepertoire,
bVerifSousRepertoires, nFlags)
API("kernel32","WaitForSingleObject", hNote, nTimeOut)
API("kernel32","FindCloseChangeNotification", hNote)
Info("Fichier modifié!")

L'appel est bloquant, fais une fonction dans un thread qui déclenchera
un événément (ou un appel de fonction dans un autre thread)
WD Inside
Le #19687781
Hello

"Gilles" a écrit dans le message de > Et si tu veux faire sans .NET (et
être sûr que ça marche partout)
Tu peux combiner les variables pour avoir les différentes surveillances
(J'ai écris ça rapidos, mais à priori, ça marche comme tu le souhaites


[][/]
L'appel est bloquant, fais une fonction dans un thread qui déclenchera un
événément (ou un appel de fonction dans un autre thread)



merci à toi

Mais pour être bloquant, c'est bloquant !
La ligne API("kernel32","WaitForSingleObject", hNote, nTimeOut)
prend un temps fou

A+
Gilles
Le #19687981
WD Inside a exposé le 03/07/2009 :
Hello

"Gilles" a écrit dans le message de > Et si tu veux faire sans .NET (et être
sûr que ça marche partout)
Tu peux combiner les variables pour avoir les différentes surveillances
(J'ai écris ça rapidos, mais à priori, ça marche comme tu le souhaites


[][/]
L'appel est bloquant, fais une fonction dans un thread qui déclenchera un
événément (ou un appel de fonction dans un autre thread)



merci à toi

Mais pour être bloquant, c'est bloquant !
La ligne API("kernel32","WaitForSingleObject", hNote, nTimeOut)
prend un temps fou



bah en fait elle attend indéfiniment une modification dans le dossier.
D'où l'idée de la coller dans un thread.
Alors il y a peut être autre chose, je n'ai pas creusé à 100% ;-)
WD Inside
Le #19687971
"Gilles" a écrit dans le message de >

bah en fait elle attend indéfiniment une modification dans le dossier.
D'où l'idée de la coller dans un thread.
Alors il y a peut être autre chose, je n'ai pas creusé à 100% ;-)



Pas d'bile, c'est pas grave !

A+
Publicité
Poster une réponse
Anonyme