Temps de pause entre suppression et renommage ?

umfred Messages postés 18 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 juin 2017 - 18 févr. 2009 à 17:39
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 18 févr. 2009 à 19:57
Bonjour,

j'ai un programme en VB6 qui manipule des fichiers
ouverture, lecture, ecriture de fichiers,
"concatenation" de 2 fichiers dans un fichier temporaire,
 suppression du fichier d'origine
 et renommage du fichier temporaire avec le nom de fichier d'origine

Bref tout se déroule bien sauf que parfois, de manière aléatoire, une erreur se produit lors du renommage du fichier temporaire, m'indiquant que le fichier existe déjà alors que la commande précédente est justement un effacement de fichier.

exemple du code:
' Renommage du fichier Prime en fichier de BDD
If (Dir(ID_NomFichierSERV) <> "") Then
    ' Le fichier original existe, on le supprime
    Kill ID_NomFichierSERV
End If
Name ID_NomFichierPrimeSERV As ID_NomFichierSERV

Quand je suis en mode "développement" , il m'indique l'erreur sur la ligne "name ..."
Je relance l'exécution du code, et pas d'erreur (entretemps j'ai vérifié si mon fichier était présent ou non, et il est bien effacé).

D'où ma question (enfin) :
 Est-ce qu'il y a un temps de traitement des commandes kill et/ou name ?
 ou alors comment éviter que ce genre d'erreur puisse se produire ?

Merci de vos conseils

1 réponse

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
18 févr. 2009 à 19:57
Salut
Essaye d'ajouter des DoEvents après chacune de tes opérations, cela suffira peut-être.
Sinon :
- après un Delete, faire une boucle de vérification, jusqu'à ce que le fichier n'existe plus.
- avant un rename, vérifier que le fichier n'eiste pas déjà
...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0