Renomer tous les fichiers d'un dossier

doobinay64 Messages postés 1 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 28 avril 2006 - 28 avril 2006 à 19:16
cs_gomido Messages postés 1 Date d'inscription samedi 1 août 2009 Statut Membre Dernière intervention 1 août 2009 - 1 août 2009 à 01:30
Bonjour,
Pour être franc, je me suis lancé à vb il y a environ 3h. Je ne sais donc pas faire grand chose.
Mon intention est de créer un programme qui va renommer tous les fichiers d'un dossier.
Je voudrais récupérer tous les noms de fichiers d'un dossier, garder que les 3 premiers nombres de ce fichier et renommer chacun des fichiers par ces 3 premiers nombres (sans perdre l'extension).

XxxXx_001_[020DC42X].avi ----> 001.avi

Il faut donc que je fasse une boucle qui récupère un par un le nom du fichier et le renomme.

Comment faire cette boucle?

Merci d'avance

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 avril 2006 à 19:52
Salut
Commence par découper ce que tu as à faire :
- Faire une boucle (For-Next ou Do-Loop)
- Lister, les uns après les autres, les noms des fichiers (fonction Dir)
- Pour chaque fichier, repérer dans son nom le chiffre qui sera son prochain nom (fonctions Instr, Mid, ...)
- Renommer le fichier (voir multiples sources sur ce sujet)

Inspire toi des sources du site en mettant "renommer fichiers" dans la case Rechercher en haut de cette page.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
29 avril 2006 à 09:07
Bonjour,

Exemple avec l'objet FSO (FileSystemObject)
Le rename du fichier s'effectue à partir de
la 2ème occurrence "_" trouvée.

aaa.xxx ne sera pas modifié
aaa_bbb.xxx ne sera pas modifié
aaa_bbb_ccc.xxx sera renommé en bbb.xxx
aaa_bbb_ccc_ddd.xxx sera renommé en bbb.xxx

Option Explicit
Call Form_Load()
Private Sub Form_Load()
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Occurrence recherchée
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Const Separateur = "_"
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Recherche de chaine de caractères à partir d'une occurrence
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dim Fso, Fichier, Dossier, iPos, iPos1, sChaine, NewChaine
Const Path = "d:\test"

Set Fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.GetFolder(Path)

For Each Fichier In Dossier.Files
iPos = ""
iPos1 = ""
sChaine = Fichier.Name
iPos = InStr(1, sChaine, Separateur)


If iPos = 0 Then
Else
NewChaine = Right(sChaine, Len(sChaine) - iPos)

iPos1 = InStr(1, NewChaine, Separateur)
If iPos1 = 0 Then
Else
MsgBox "Nom de fichier comprenant le caractère """ & Separateur & """" &vbCrLf&vbCrLf& sChaine &vbCrLf&vbCrLf&vbCrLf&_
"Résultat pour le 1er """ & Separateur & """" &vbCrLf&vbCrLf&"A gauche : " & Left(sChaine, iPos - 1) &vbCrLf&_
"A droite : " & Right(sChaine, Len(sChaine) - iPos) &vbCrLf&vbCrLf&_
"Résultat pour le 2ème """ & Separateur & """" &vbCrLf&vbCrLf&"A gauche : " & Left(sChaine, iPos - 1) &vbCrLf&_
"Au centre : " & Left(NewChaine, iPos1 - 1) &vbCrLf&_
"A droite : " & Right(NewChaine, Len(NewChaine) - iPos1),_
vbInformation,"Recherche de l''expression contenue à gauche, au centre et à droite du caractère """ & Separateur & """ "
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Rename du fichier
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Fso.MoveFile Path & "" & Fichier.Name, Path & "" & Left(NewChaine, iPos1 - 1) & Right(Fichier, 4)
'
End If
End If
Next
End Sub

jean-marc
0
cs_gomido Messages postés 1 Date d'inscription samedi 1 août 2009 Statut Membre Dernière intervention 1 août 2009
1 août 2009 à 01:30
je souhaite copier un classeur et le renommé par le nom des uers saies dans le formulaire excel
0
Rejoignez-nous