[R] surveillez la création d'un fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
fred62
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 13 oct. 2010 18:28
Status : Hors ligne

[R] surveillez la création d'un fichier

#1

Message par fred62 »

bonjour

je suis DSI d'une collectivité locale et nouveau dans la programmation d'autoit.
je voudrais savoir si il existe un moyen de surveiller la création d'un fichier.
je m'explique, nous avons des logiciels métiers qui créent des fichiers d'interfaces dans un répertoire.
ces fichiers sont ensuite déposés après modifications sur un serveur UNIX en FTP et je voudrais automatiser ces modifs et le transfert.
je suppose qu'une fois terminé, ces fichier sera compilé et mis en service de windows.
mais comment faire attendre autoit pour qu'il déclenche les processus qu'une fois le fichier crée ?
merci d'avance pour vos réponses.

cordialement
Modifié en dernier par fred62 le ven. 15 oct. 2010 12:02, modifié 2 fois.
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [....] surveillez la création d'un fichier

#2

Message par legend »

Bonjour,
bien que je suis débutant je peux faire sa "a la roche ^^"
Tu peux faire avec un imageSearch pour détecter une image qui apparait sur ton écran quand le fichier finis la creation.
sinon fait ac un run et @error

Code : Tout sélectionner

while 1
run ("chemin du fichier")
If @error then
sleep (100)
else
exitloop
endif
wend
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [....] surveillez la création d'un fichier

#3

Message par Yogui »

sinon avec FileExists

exemple :

Code : Tout sélectionner

If FileExists("C:\autoexec.bat") Then
    MsgBox(4096, "C:\autoexec.bat File", "Exists")
Else
    MsgBox(4096,"C:\autoexec.bat File", "Does NOT exists")
EndIf
Par contre attention aux balises la Balise pour les nouvelles demande est : [..] et pas [....] :evil:
fred62
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 13 oct. 2010 18:28
Status : Hors ligne

Re: [R] surveillez la création d'un fichier

#4

Message par fred62 »

merci de vos réponse rapide et précise.

j'ai compacté vos deux réponses pour en faire une seule et cela fonctionne.

Code : Tout sélectionner

while  NOT FileExists("*.txt")
    If @error then
        exitloop
    else
        sleep (1000)
    endif
wend

 
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [R] surveillez la création d'un fichier

#5

Message par Yogui »

Par contre attention le fichier peux exister mais il peux être en cours d'écriture.

Bref si le fichier et gros la copie n'est peut être pas finie....
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [R] surveillez la création d'un fichier

#6

Message par legend »

Pas possible de réagir en dépendant de la taille du fichier??
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [R] surveillez la création d'un fichier

#7

Message par Yogui »

Possible oui, en fait l'habitude et peut être aussi l'expérience m'a fait passer par un moyen détourné et plus simple : la création d'un fichier du même nom mais en .OK

exemple je copie ou génère un fichier TOTO.LOG dès la fin de l'opération je fais un TOTO.OK vide et je vérifie si le .OK est présent

mais comme je l'ai indiqué c'est plus par habitude.
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [R] surveillez la création d'un fichier

#8

Message par legend »

Hmm mouais, trés bonne idée
Sauf que moi je serais pas comment faire cela :D
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [R] surveillez la création d'un fichier

#9

Message par Yogui »

L'idée est de prendre un fichier de le modifier puis de le mettre sur un ftp

A la fin du code de modification faire un filecreate en .ok

pour le transfère ftp faire une tache planifiée qui attend le .ok fileexiste

Cette solution est applicable si on maitrise la création du fichier à transfèrer (ce qui est le cas dans cette demande)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] surveillez la création d'un fichier

#10

Message par Tlem »

En ce qui me concerne, j'entrevois deux solutions.

1 - Normalement lorsqu'un fichier est en cours d'écriture, il ne peut être ouvert une nouvelle fois pour écriture. Donc l'utilisation de FileOpen("Fichier" , 1) doit retourner une erreur -1.
Sachant cela, il suffit de vérifier cet état et de faire en sorte d'attendre tant que le fichier n'est pas disponible. :wink:

2 - Il n'est pas précisé dans le premier sujet si les fichiers créés sont connus. Donc une autre solution consiste à surveiller un dossier, afin de 'voir' si un nouveau fichier fait son apparition (ce qui correspond au titre du sujet ;) ).
Pour cela, il vaut mieux utiliser l'UDF FileSystemMonitor disponible sur ce lien : http://www.autoitscript.com/forum/index ... pic=113560
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre