Renommer le préfixe de tous les fichiers d'un dossier

Contenu du snippet

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é.

A voir également

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.