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

4/5 (1 avis)

Snippet vu 16 427 fois - Téléchargée 18 fois

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

Ajouter un commentaire Commentaire
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 23
6 janv. 2008 à 09:44
Pas eu l'occasion de tester, mais à vue de nez, les tests de base sont présents et efficaces. Bravo !

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.