OVH Cloud OVH Cloud

FileSystemWatcher suite

7 réponses
Avatar
bonjour,

voila je bute sur un truc,
j'ai un dossier à surveiller dans lequel des images sont déposé.
je recupere donc ce fichier nouvellement déposé et je lance un autre exe
avec des parametres qui va me faire une vignette Jpg dans le dossier parent.
jusqu'a la pas de probleme !

j'utilise donc le FileSystemWatcher avec NotifyFilter =
(NotifyFilters.FileName)
seulement parfois certaines images sont juste modifiées et resauvées sous le
meme nom par les graphistes il faut donc regenerer une vignette
mais avec juste le NotifyFilters.FileName je ne vois pas cet evenement.
je rajoute donc NotifyFilter = (NotifyFilters.FileName or
NotifyFilters.LastWrite) (j'ai essayer les autres j'arrive au meme point
qui va suivre)

et voila le debut de mon probleme !
car bien sur je suis obligé de faire une boucle sur la disponibilité du
fichier et depuis le lastwrite j'ai entre 3 et 4 evenements declanchés.
Ce qui fait que ma vignette est refaite entre 3 et 4 fois, sachant que cela
coute en ressources systeme.

Je voulais savoir comment gerer un seul evenement par fichier ou n'en
recevoir qu'un comme avec le NotifyFilters.FileName

Merci par avance

7 réponses

Avatar
TroXsA - [VB.NET-2005]
Salut !


Je voulais savoir comment gerer un seul evenement par fichier ou n'en
recevoir qu'un comme avec le NotifyFilters.FileName



Hummm bonne question
le plus simple mais prise de tete c''est prendre chaque fichier pour les
mettres dans un dossier individuel mais bon (lol)

je sais pas du tout comment faire autrement pour le moment ...

--
TroXsA
Avatar
mouais c'est assez ennuyant car un oncreated
genere en suivant 2 ou 3 onchanged

le probleme c'est que je suis obligé de tenir compte du onchanged car
certains fichiers sont directement sauvés dans ce repertoire et si je ne
gere pas cette condition elles sont pas traitées !!!

la seule parade que j'ai trouvé pour le moment c'est de stocker le nom du
dernier fichier traité et d'annuler les autres evenements traintant du meme
fichier.

la derniere ombre à ce tableau c'est que le meme fichier ne peut etre traité
2 fois d'affilé !
ce qui me pose bien sur un probleme, car un fichier à la possibilité d'etre
sauvegardé plusieurs fois pour diverses modifications.
et je les probabilité qu'un autre fichier soit traité entre temps existes !!


"TroXsA - [VB.NET-2005]" a écrit dans le message de
news: de1lj1$270$
Salut !


Je voulais savoir comment gerer un seul evenement par fichier ou n'en
recevoir qu'un comme avec le NotifyFilters.FileName



Hummm bonne question
le plus simple mais prise de tete c''est prendre chaque fichier pour les
mettres dans un dossier individuel mais bon (lol)

je sais pas du tout comment faire autrement pour le moment ...

--
TroXsA





Avatar
jerome crevecoeur
certainement une bêtise mais regarder la date de modification du fichie r
ou alors attendre un laps de temps de modification pour un meme fichier.. .?


wrote:
mouais c'est assez ennuyant car un oncreated
genere en suivant 2 ou 3 onchanged

le probleme c'est que je suis obligé de tenir compte du onchanged car
certains fichiers sont directement sauvés dans ce repertoire et si je ne
gere pas cette condition elles sont pas traitées !!!

la seule parade que j'ai trouvé pour le moment c'est de stocker le no m du
dernier fichier traité et d'annuler les autres evenements traintant d u meme
fichier.

la derniere ombre à ce tableau c'est que le meme fichier ne peut etre traité
2 fois d'affilé !
ce qui me pose bien sur un probleme, car un fichier à la possibilité d'etre
sauvegardé plusieurs fois pour diverses modifications.
et je les probabilité qu'un autre fichier soit traité entre temps e xistes !!


"TroXsA - [VB.NET-2005]" a écrit dans le message de
news: de1lj1$270$

Salut !



Je voulais savoir comment gerer un seul evenement par fichier ou n'en
recevoir qu'un comme avec le NotifyFilters.FileName



Hummm bonne question
le plus simple mais prise de tete c''est prendre chaque fichier pour le s
mettres dans un dossier individuel mais bon (lol)

je sais pas du tout comment faire autrement pour le moment ...

--
TroXsA










Avatar
alors un laps de temps je ne peux pas j'y ai pensé !
car j'ai plusieurs sources possibles (internet, reseau, etc..)
donc des laps de temps completements differents.

la date ne pourra pas me dire grand chose.




"jerome crevecoeur"
a écrit dans le message de news: ef4dCs%
certainement une bêtise mais regarder la date de modification du fichier
ou alors attendre un laps de temps de modification pour un meme fichier...?


wrote:
mouais c'est assez ennuyant car un oncreated
genere en suivant 2 ou 3 onchanged

le probleme c'est que je suis obligé de tenir compte du onchanged car
certains fichiers sont directement sauvés dans ce repertoire et si je ne
gere pas cette condition elles sont pas traitées !!!

la seule parade que j'ai trouvé pour le moment c'est de stocker le nom du
dernier fichier traité et d'annuler les autres evenements traintant du
meme fichier.

la derniere ombre à ce tableau c'est que le meme fichier ne peut etre
traité 2 fois d'affilé !
ce qui me pose bien sur un probleme, car un fichier à la possibilité
d'etre sauvegardé plusieurs fois pour diverses modifications.
et je les probabilité qu'un autre fichier soit traité entre temps existes
!!


"TroXsA - [VB.NET-2005]" a écrit dans le message de
news: de1lj1$270$

Salut !



Je voulais savoir comment gerer un seul evenement par fichier ou n'en
recevoir qu'un comme avec le NotifyFilters.FileName



Hummm bonne question
le plus simple mais prise de tete c''est prendre chaque fichier pour les
mettres dans un dossier individuel mais bon (lol)

je sais pas du tout comment faire autrement pour le moment ...

--
TroXsA










Avatar
TroXsA - [VB.NET-2005]
Question juste comme ça
"Queue" serait pas mal peut etre non ?

--
TroXsA
Avatar
ouais j'y es pensé mettre en place une base
mais comment reconnaitre le passage X d'un fichier A
avec un nouveau passage du fichier A

j'explique quand le fichier A arrive il va donc generer entre son arrivé et
sa disponibilité finale X passages dans onchange
le probleme c'est que ce fichier A si il est reenregistré une nouvelle fois,
il va regenerer X passages dans onchange et en plus il porte le meme nom
donc impossible de savoir si c'est des passages inutile ou un passage
necessaire !

je sais pas si je suis tres clair ?

sauf si il existe un moyen de savoir si le fichier et fermé un evement qui
dirait le fichier A c'est ok il est dispo !
si cela existait je pourrais me fier qu'a cet evenement qui serait valable
dans tous les cas !

car malgres la boucle qui attends que le fichier ne soit plus en uilisation,
il à l'air de generer un dernier onchange une fois celui ci liberé !





"TroXsA - [VB.NET-2005]" a écrit dans le message de
news: de25bi$anf$
Question juste comme ça
"Queue" serait pas mal peut etre non ?

--
TroXsA




Avatar
TroXsA - [VB.NET-2005]
J'ai trouvé pas mal d'exemple dans les 101 exemples de Microsoft

How-To File Notifications
http://msdn.microsoft.com/vbasic/downloads/samples/default.aspx

Telecharge tout et installe :)
plein de code d'exemple voila j'espere que tu vas trouver ton bonheurs

@+
--
TroXsA