Jupp, und auf die Idee mit AnsiReplaceText für den Ü-Ordner wäre ich nicht gekommen (hätte die Backslashes von hinten geparst)
Was passiert wohl bei diesem Pfad:
Code:
C:\temp\alt\ein\alt\dir\datei.txt
Deswegen bist du darauf nicht gekommen, weil das mit dem
AnsiReplaceText
sehr fehleranfällig ist
Das stimmt natürlich, kommt halt auf die Aufgabenstellung an. Allgemeingültig ist meine Lösung sicherlich nicht.
Aber Dein Beispiel entspricht nicht der Aufgabenstellung. Es soll nur der letzte Teil aus dem Pfad entfernt werden.
Lieber eher sowas?
Delphi-Quellcode:
function GetNewFileName(sFilename : String) : String;
begin
Result := ExtractFilePath(sFilename);
Result := ExcludeTrailingPathDelimiter(Result);
Result := ReverseString(Result);
Result := Copy(Result,1,Pos(SysUtils.PathDelim,Result) - 1);
Result := ReverseString(Result);
Result := IncludeTrailingPathDelimiter(Result);
Result := Result + ExtractFilename(sFilename);
end;
...
if not SysUtils.RenameFile(sFilename,GetNewFileName(sFilename)) then begin
FehlermeldungMachen;
end;
(ungetestet hingedaddelt)