Vous disposez d'un dossier où les noms de plusieurs fichiers commencent par la même chaine.
Vous voulez remplacer cette chaîne par une autre pour tous les fichiers.
Cette fonction le fait très bien, sans problème pour un très grand nombre de fichiers.
Source / Exemple :
FUNCTION RenameFilePrefixes(cDir,cOld,cNew)
LOCAL cFileName, cRightPart
IF( DIRECTORY(cDir) .AND. !EMPTY(cOld) .AND. !EMPTY(cNew) .AND. cOld != cNew )
SET DEFAULT TO "&cDir"
cFileName = SYS(2000,cOld+"*.*")
DO WHILE( !EMPTY(cFileName) )
IF( LEN(cNew) > LEN(cOld) ) && Evite de boucler infiniment
DO WHILE( !EMPTY(cFileName) .AND. cNew = LEFT(cFileName,LEN(cNew)) )
cFileName = SYS(2000,cOld+"*.*",1) && Passage au fichier suivant
ENDDO
ENDIF
IF( !EMPTY(cFileName) )
cRightPart = SUBSTR(cFileName,LEN(cOld)+1) && Partie de droite à garder
RENAME "&cOld"+"&cRightPart" TO "&cNew"+"&cRightPart" && Remplacement du préfixe
cFileName = SYS(2000,cOld+"*.*") && Passage au fichier suivant
ENDIF
ENDDO
SET DEFAULT TO
RETURN .T.
ELSE
RETURN .F.
ENDIF
ENDFUNC
Conclusion :
La fonction renvoie .T. si tout s'est bien déroulé.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.