Bonjour,
Ma fonction dont le code suit récupère le contenu d'un Edit ($monEdit) , chaque ligne affichant un nom de fichier et un nouveau nom, séparés par un point-virgule (;)
Elle met ce contenu en tableau (StringSplit($monEdit, Chr(13)).
Dans une boucle For... Next parcourant le tableau,
2 variables récupèrent les 2 noms de fichier par StringSplit($ligne, ";").
$fichierOrigine contient la première donnée (chemin et nom de fichier originel)
$fichierDestination contient la seconde donnée (chemin et nouveau nom)
Puis copie du fichier originel avec renommage dans un sous-dossier avec la fonction CopyFile.
Tout se passe bien pour la première ligne du tableau : le fichier se retrouve bien renommé dans le sous-dossier. Les fichiers suivants ne sont pas copiés. Je n'arrive pas à saisir pourquoi.
► Afficher le texte
Code : Tout sélectionner
Func Renommer()
Local $lectureListe = GUICtrlRead($monEdit)
$monTableau = StringSplit($monEdit, Chr(13))
;_ArrayDisplay($monTableau, "test")
for $i = 1 TO UBound($monTableau) - 1
msgbox(0,"",$monTableau[$i])
Local $test = StringInStr($monTableau[$i],";")
If $test > 0 Then
Local $fichier = StringSplit($monTableau[$i],";")
Local $fichierOrigine = $fichier[1]
Local $fichierDestination = $fichier[2]
;msgbox(0,"",$fichierOrigine & " > " & $fichierDestination)
if FileExists($fichierDestination) Then
Local $avertissement = MsgBox(52,"", "Le fichier " & $fichierDestination & " existe déjà !" & @CRLF & @CRLF & "Voulez-vous le remplacer ?")
if $avertissement = 6 Then FileCopy($fichierOrigine, $fichierDestination, 9)
Else
FileCopy($fichierOrigine,$fichierdestination, 9)
if @error Then
msgbox(0,"","erreur" & $i)
Else
ConsoleWrite("Copie réussie n° " & $i & " de : " & $fichierOrigine & " en " & $fichierDestination & @CRLF)
Endif
EndIf
EndIf
Next
EndFunc
Voyez-vous la raison de ce dysfonctionnement ?
Je vous remercie.