// Getestet mit D4 unter XP

// Immer wieder werde ich angefragt, wie man Ordner umbenennt. Am
// einfachsten nutzt man die Funktion
RENAMEFILE, denn obwohl das
// Wort
FILE darin vorkommt, werden auch FOLDER umbenannt.

procedure TForm1.Button5Click(Sender: TObject); 
var 
  alt, neu: string; 
begin 
  alt := 'C:\Test'; 
  neu := 'C:\Versuch'; 
  if not RenameFile(alt, neu) 
    then showmessage('Fehler') 
  else showmessage('OK'); 
end;

// Schaut man aber in der Unit SYSUTILS nach, entdeckt man, dass sich dahinter
// die Funktion
MOVEFILE verbirgt. Also kann man auch diese benutzen:

procedure TForm1.Button5Click(Sender: TObject); 
var 
  alt, neu: string; 
begin 
  alt := 'C:\Test'; 
  neu := 'C:\Versuch'; 
  if not MoveFile(Pchar(alt), Pchar(neu)) 
    then showmessage('Fehler') 
  else showmessage('OK'); 
end;

// Und wer will, kann aber auch gleich auf API-Funktionen zurückgreifen:

uses ShellApi; 
 
function RenameFLR(Alt, Neu: string): boolean; 
var 
  fos: TSHFileOpStruct; 
  function BL_0(s: string): string; 
  begin 
    if ansilastchar(s) = '\' then delete(s, length(s), 1); 
    result := s + #0#0; 
  end; 
begin 
  Alt := BL_0(Alt); 
  Neu := BL_0(Neu); 
  with fos do begin 
    Wnd := 0; 
    wFunc := FO_RENAME; 
    pFrom := @Alt[1]; 
    pTo := @Neu[1]; 
    fFlags := FOF_ALLOWUNDO or FOF_SILENT or FOF_NOCONFIRMATION; 
  end; 
  result := SHFileOperation(fos) = 0; 
end; 
 
 
procedure TForm1.Button5Click(Sender: TObject); 
var 
  alt, neu: string; 
begin 
  alt := 'C:\Test'; 
  neu := 'C:\Versuch'; 
  if not RenameFLR(alt, neu) 
    then showmessage('Fehler') 
  else showmessage('OK'); 
end; 


Zugriffe seit 6.9.2001 auf Delphi-Ecke