Page 1 sur 1
Attendre la fin de Filecopy
Posté : lun. 24 juil. 2017 11:32
par Filou07
Bonjour,
Dans mon script, j'utilise la commande Filecopy pour copier plusieurs fichiers d'un dossier vers un autre (mise à jour par écrasement) puis je fais exécuter l'un des fichiers copiés (une base de données Access en l’occurrence). Mon souci c'est que le l'exécution de ce fichier se fait alors que la copie n'a pas fini et du coup erreur.
Comment puis-je faire attendre mon script que la copie intégrale soit terminée ?
Merci pour votre aide
Re: Attendre la fin de Filecopy
Posté : lun. 24 juil. 2017 11:56
par mimione
Bonjour
Je vais probablement proposer une ânerie (ça ne serait pas la première !): Est-ce qu'un "FileFlush" ne permettrait pas de résoudre le problème ?? -le hic , c'est qu'il faut un "filehandle" qu'on ne demande pas pour faire le "FileCopy"....
Pas taper !
Bonne journée.
Re: Attendre la fin de Filecopy
Posté : lun. 24 juil. 2017 13:17
par Filou07
Fileflush est réservé à l'édition de fichier, mais pas à la copie.
Comme je suis un gentil garçon je tape pas

Re: Attendre la fin de Filecopy
Posté : lun. 24 juil. 2017 18:51
par mikell
En principe FileCopy ne se termine que quand la copie est finie, donc le problème doit venir du fait que la copie concerne plusieurs fichiers
Pas testé, mais tu pourrais essayer une boucle d'attente qui compare les tailles de source et destination (FileGetSize) du
dernier fichier copié
Ou alors un mélange savant de FileExists et de _WinAPI_FileInUse
Ou peut-être tout simplement copier la bdd en dernier

Re: Attendre la fin de Filecopy
Posté : lun. 24 juil. 2017 19:37
par orax
mimione a écrit : ↑lun. 24 juil. 2017 11:56Est-ce qu'un "FileFlush" ne permettrait pas de résoudre le problème ?? -le hic , c'est qu'il faut un "filehandle" qu'on ne demande pas pour faire le "FileCopy"....
J'avais aussi pensé à faire un "flush".

Mais je ne sais pas si c'est la solution au problème.
_WinAPI_FlushFileBuffers
me semble plus adapté que FileFlush :
How to flush a storage volume's file cache, lock and dismount it, and eject the media - CodeProject
Ou Sync de Sysinternals :
https://technet.microsoft.com/en-us/sys ... 2147217396
Re: Attendre la fin de Filecopy
Posté : mar. 25 juil. 2017 09:52
par Filou07
Bonjour,
Finalement, j'ai pris l'option de mettre en array la liste des fichiers à copier, de copier chaque fichier et de faire une boucle tant que les dates et tailles ne concordent pas :
Re: Attendre la fin de Filecopy
Posté : jeu. 27 juil. 2017 10:15
par nanucq
Et un ProcessWaitClose ne fonctionnerait pas ?
EDIT: Effectivement, c'est une bêtise

Re: Attendre la fin de Filecopy
Posté : jeu. 27 juil. 2017 15:21
par mikell
FileCopy (fichier d'aide)
Return Value : Success: 1 , Failure: 0.
