// 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;
|