J'ai besoin de vos lumières (les miennes ont fini par griller

je rencontre un problème avec l'instruction RenameFIle() utilisée dans une boucle dans un thread.
J'ai invariablement un retour d'erreur de "violation de partage" (Code 32 : "ERROR_SHARING_VIOLATION" récupérée via GetLastError_()).
Ma ligne de commande initiale (Note pour la compréhension du code : la référence au fichier source provenant d'une liste est utilisée avec With) :
Code : Tout sélectionner
Resultat=RenameFile(\AncienNomFichier(),NouveauNomFichier)
J'ai donc ajouté en amont et en aval quelques lignes pour déterminer d'où pouvait venir le problème :
Code : Tout sélectionner
; Je teste si le fichier source est utilisé par un autre processus
handle=CreateFile_(\AncienNomFichier(),#GENERIC_READ,0,#Null,#OPEN_EXISTING,#FILE_ATTRIBUTE_NORMAL,#Null)
If handle=#INVALID_HANDLE_VALUE
MessageRequester("Echec opération",Str(GetLastError_()))
Else
CloseHandle_(handle)
; ici, j'ai un retour '0' donc, normalement, le fichier n'est pas 'bloqué...
MessageRequester("Réussite opération",Str(GetLastError_()))
EndIf
; Je teste le dernier code GetLastError_() et j'obtiens '0'
MessageRequester("Test",Str(GetLastError_()))
; Je tente de renommer le fichier
Resultat=RenameFile(\AncienNomFichiers(),NouveauNomFichier)
; Ici, j'affiche le résultat et j'obtiens 0 (Echec) sur la 1e ligne et 32 (violation de partage) sur la seconde
MessageRequester("Résultat",Str(Resultat)+Chr(10)+Str(GetLastError_()))
Or, quand je lance la même instruction avec les fichiers source et cible saisis littéralement dans un nouveau projet avec pour unique ligne :
Code : Tout sélectionner
Resultat=RenameFile("\\?\D:\Ancien.txt","\\?\D:\Nouveau.txt") ; Retour Resultat=1 (Réussite)

Quelqu'un aurait-il une piste ?
Merci.