Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD14] Surveillez un répertoire sur le disque

6 réponses
Avatar
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

6 réponses

Avatar
Romain PETIT
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
Avatar
WD Inside
"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
Avatar
Gilles
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)
Avatar
WD Inside
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+
Avatar
Gilles
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% ;-)
Avatar
WD Inside
"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+