Bonsoir,
J'ai un petit souci avec une procédure pour renommer une série de fichiers.
Si les fichiers en questions ont déjà été renommé avec le nouveau nom ajouté du signe "_0" puis de son extension, cela fonctionne la 1ère fois.
Par contre si je modifie le nom renommé, le new nom devient farfelu "_0100" etc.
Voici le code que j'utilise :
Edit1 = le chemin
Edit2 = new nom
Edit3 = extension
procedure TFiche.But_RenommerClick(Sender: TObject);
Var
IndexFichier, NombreFichiers, Rep: integer ;
Info : TSearchRec;
Fichier, MonExtensionDeFichier, NouveauNomDeFichier, Chemin, FichierRenomme: string ;
begin
Chemin := IncludeTrailingPathDelimiter(Edit1.Text);
NouveauNomDeFichier := edit2.Text;
If FindFirst(Chemin+ edit3.text,faAnyFile,Info)=0 Then
NombreFichiers :=0 ;
Begin
Repeat
NombreFichiers := NombreFichiers + 1 ;
Until FindNext(Info)<>0;
end;
Rep : = Application.MessageBox(Pchar('*** Etes vous certain de vouloir renommer ces '+IntToStr(NombreFichiers)+' fichiers ***' ), 'Message ', MB_OKCANCEL );
If Rep = 1 then // si l'utilisateur a
begin
ProgressBar1.Min := 0;
ProgressBar1.Max := NombreFichiers;
ProgressBar1.Position := 0 ;
{ Recherche de la première entrée du répertoire }
If FindFirst(Chemin+ edit3.text,faAnyFile,Info)=0 Then
Begin
IndexFichier := +1 ;
Repeat
Fichier := Info.FindData.cFileName; // on recupere le nom du fichier
MonExtensionDeFichier := ExtractFileExt(Fichier); // on recupere l'extension
FichierRenomme := Chemin + NouveauNomDeFichier + '_0'+ IntToStr(IndexFichier)+ MonExtensionDeFichier;
RenameFile(Chemin + Fichier, FichierRenomme);
// compte les fichiers
IndexFichier := IndexFichier +1;
ProgressBar1.Position := ProgressBar1.Position +1 ;
Until FindNext(Info)<>0;
FindClose(Info);
Application.MessageBox(Pchar('*** Les '+IntToStr(NombreFichiers)+' fichiers sont renommés avec succès ! ***'), 'Message', MB_OK) ;
end;
end;
end;
A votre meilleure convenance et merci d'avance,
@ Cincap
[url]mailto:
/url