[R] Taille de fichier en cours de copie

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
namzat
Niveau 1
Niveau 1
Messages : 7
Enregistré le : jeu. 09 déc. 2010 21:20
Status : Hors ligne

[R] Taille de fichier en cours de copie

#1

Message par namzat »

Bonsoir à tous,

Voilà, je solicite votre aide et vos conseil car je suis en train de créer un script et j'ai besoin de vérifier si le fichier est fini de copier et je n'y parviens pas, j'ai tenté d'utiliser le Filegetsize mais elle m'indique la taille totale du fichier alors qu'il n'est pas fini d'être copié....
Ma première idée était de verifier la taille à l'aide de cette fonction, faire une pause, revérifier la taille et comparer les deux et si = 0 alors le fichier est fini d'être copié.

Merci par avance de votre aide.
Modifié en dernier par namzat le ven. 10 déc. 2010 21:38, modifié 3 fois.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: taille de fichier en cours de copie

#2

Message par bloodwolff »

présentation des messages ...
Compte skype : bloodwolfff
namzat
Niveau 1
Niveau 1
Messages : 7
Enregistré le : jeu. 09 déc. 2010 21:20
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#3

Message par namzat »

Désolé, c'est mieux comme ça ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#4

Message par Tlem »

Si ma mémoire est bonne, ce sujet a déjà été traité.
Vous devriez faire quelques recherches avec l'outil du forum : http://www.autoitscript.fr/forum/search.php
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é".
namzat
Niveau 1
Niveau 1
Messages : 7
Enregistré le : jeu. 09 déc. 2010 21:20
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#5

Message par namzat »

Merci pour ces pistes mais je n'ai trouvé que des infos concernant la copie de fichier que fait le pc avec controle de progress bar, le souci c'est que ce n'est pas comme ça que mon système fonctionne, je m'explique :

En fait il s'agit d'un répertoire partagé sur lequel un copieur scanne un groooos document, je surveille l'activité du repertoire grâce aux fonctions UDF, dès que je détecte un nouveau fichier (ce n'est donc pas mon windows qui crée le fichier mais mon copieur), je souhaite vérifier s'il est complet (donc voir si sa taille ne varie plus), si c'est le cas, j'affiche une popup avec 2 bouton ouvrir fichier et ok qui ferme la popup.

Voilà mon projet et je vous remercie d'y contribuer.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#6

Message par bloodwolff »

Désolé, c'est mieux comme ça ?
Tu le modifiais 10min plus tard et Tlem aurais mis ton post à poubelle :roll:
Compte skype : bloodwolfff
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#7

Message par Tlem »

namzat a écrit :En fait il s'agit d'un répertoire partagé
Vous ne l'aviez pas précisé.

Essayez de faire un FileOpen en écriture. Normalement, tant que le fichier n'est pas fini d'être écrit, vous devriez avoir -1 en retour, mais c'est à vérifier ...

Edit : Testé et approuvé. ;)
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é".
namzat
Niveau 1
Niveau 1
Messages : 7
Enregistré le : jeu. 09 déc. 2010 21:20
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#8

Message par namzat »

Merci, c'est vrai que je n'avais pas précisé la totalité de mon projet, Je vais tester mais je me demande si l'on peut faire un Fileopen en écriture sur un fichier PDF si l'on a pas Acrobat complet.
namzat
Niveau 1
Niveau 1
Messages : 7
Enregistré le : jeu. 09 déc. 2010 21:20
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#9

Message par namzat »

J'ai presque fini mon script, j'ai du utiliser un ShellexecuteWait car le Fileopen ne fonctionne pas pour l'ouverture d'un PDF (j'ai fait mes recherches sur le fofo cette fois) mais j'ai bien peur qu'en cas de gros fichier si l'on tente de l'ouvrir alors qu'il n'est pas complet, cela ne me mette une erreur.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#10

Message par Tlem »

:shock:
Je pense que vous n'avez pas compris ce que je voulais dire.
Essayez l'exemple de la commande FileOpen sur votre fichier en cours de copie et vous verrez que vous aurez -1 en retour, tant que le fichier n'est pas totalement copié.
Cela vous permet donc de vérifier si la copie est terminée ou non (ce qui est votre toute première question). :roll:
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é".
namzat
Niveau 1
Niveau 1
Messages : 7
Enregistré le : jeu. 09 déc. 2010 21:20
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#11

Message par namzat »

Bonjour,

Effectivement je n'avais pas saisi, je tente de mettre ma condition mais elle ne fonctionne pas et je ne coprend pas pourquoi :

Code : Tout sélectionner

$size = FileOpen($rep & '\' & $event_value, 1)
            If $size <> -1 Then FileClose ($size)

En fait même pendant la copie d'un gros fichier, le script continue.
J'ai tenté avec un while mais je sèche.
En fait je veux simplement faire une boucle qui dit que on attend que $size soit différent de -1 pour continuer le script.

Je pensais tenir ma solution avec ça :

Code : Tout sélectionner

While 1
            $size = FileOpen($rep & '\' & $event_value, 1)
            If $size <> -1 Then ExitLoop
            WEnd
                
            FileClose ($size)
mais j'ain une erreur Allocating memory, comment faire ?
Merci.
Modifié en dernier par namzat le ven. 10 déc. 2010 21:27, modifié 2 fois.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#12

Message par zeshrek »

Ton pb d'allocation mémoire vient sans doute du fait que tu ouvres en boucle non stop. Faut faire des pauses des fois ;)
Essaye ca :

Code : Tout sélectionner

$Fichierdispo=False
While $Fichierdispo=False
    $Fichierdispo = FileOpen($rep & '\' & $event_value, 1)
    Sleep(1000)
WEnd
FileClose ($Fichierdispo)
 
Si vis pacem para bellum
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#13

Message par Tlem »

@namzat
Merci de rajouter la balises de code dans votre message précédent.
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é".
namzat
Niveau 1
Niveau 1
Messages : 7
Enregistré le : jeu. 09 déc. 2010 21:20
Status : Hors ligne

Re: [...] Taille de fichier en cours de copie

#14

Message par namzat »

Tlem a écrit :@namzat
Merci de rajouter la balises de code dans votre message précédent.
Oui désolé, il faut que je m'habitue aux règles du forum, voilà qui est corrigé.
zeshrek a écrit :Ton pb d'allocation mémoire vient sans doute du fait que tu ouvres en boucle non stop. Faut faire des pauses des fois ;)
Essaye ca :

Code : Tout sélectionner

$Fichierdispo=False
While $Fichierdispo=False
&nbsp; &nbsp; $Fichierdispo = FileOpen($rep & '\' & $event_value, 1)
&nbsp; &nbsp; Sleep(1000)
WEnd
FileClose ($Fichierdispo)
&nbsp;
Oui effectivement, merci zeshrek, en insérant une pause, cela marche mieux.
Par contre, le FileOpen retourne une valeur numérique (-1 si on ne peut l'ouvrir en écriture, merci à Tlem) et non True/False.

Voilà qui est résolu et fonctionnel grâce à votre aide ! (je vais mettre un [R ] )
Merci pour tout et j'éspère que ce post servira à d'autres newbies comme moi ...
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [R] Taille de fichier en cours de copie

#15

Message par zeshrek »

Ah ba oui tiens, j'ai merdu
Je m'étais mis dans la tete qu'il renvoyait 0 en cas d'echec, ou le N° de handle en cas de succes.
Du coup comme false=0 mon code aurait marché, mais là, comme c'est -1, il faut remplacer les false de mon code par -1 (ou par $false, et avoir au préalable défini que $false=-1
Toutes mes confuses
Si vis pacem para bellum
Répondre