siehe
StringReplace
Beschreibung
TReplaceFlags besteht aus einer Menge von Flags, die steuern, wie ein Teilstring innerhalb eines Strings gesucht und ersetzt wird. Diese Menge kann folgende Werte enthalten:
rfReplaceAll Alle Fundstellen werden ersetzt. Wenn dieses Flag nicht vorhanden ist, wird nur die erste Fundstelle des gesuchten Teilstrings ersetzt.
rfIgnoreCase Bei der Suche nach dem Teilstring wird die Groß-/Kleinschreibung nicht berücksichtigt. Wenn dieses Flag nicht vorhanden ist, werden nur Fundstellen berücksichtigt, deren Schreibweise genau mit dem Suchstring übereinstimmt.
PS:
write('Ordner (mit Backslash): ');
das "mit Backslash" kannst weglassen
dir := IncludeTrailingBackslash(dir);
hängt das \ notfalls an ... siehe
IncludeTrailingBackslash
für lastSlash gibt es
ExtractFileName
FindFirst sucht übrigens so auch Verzeichnisse, welche dann ebenfalls umbenannt würden.
ja und namestring wird nie verwendet
der Fehler liegt hier
RenameFile(datei,lastSlash(datei)+DateiName);
lastSlash(datei) liefert kein Verzeichnis und datei ist nicht die gefundene Datei.
und bei der suche würde ich zumindestens eine Suchmaske mit angeben ... damit auch was gefunden wird
Delphi-Quellcode:
datei := IncludeTrailingBackslash(datei);
If FindFirst (datei + '*.*', faAnyFile, FindRec) <> 0
Then Repeat
If (FindRec.Name <> '.') and (FindRec.Name <> '..')
Then begin
DateiName := FindRec.Name;
if (pos(Ren,DateiName) > 0)
Then begin
DateiName := StringReplace(DateiName, Ren, RenIn, [rfReplaceAll]);
RenameFile(datei + FindRec.Name, datei + DateiName);
end
// PS: den Variablennamen "datei" besser in "verzeichnis" umbenennen