Syntax:
function RenameFile(const OldFile: String; const NewFile: String): boolean;
Beschreibung:
Die Funktion ändert den Namen einer Datei.
RenameFile versucht, den Namen der mit OldFile angegebenen Datei in NewFile zu ändern.
Wird die Operation erfolgreich durchgeführt, gibt RenameFile den Wert true zurück.
Kann RenameFile die Datei nicht umbenennen (weil die Anwendung beispielsweise keine entsprechende Berechtigung besitzt), wird false zurückgegeben.
Hinweis: Wenn NewFile den Namen einer vorhandenen Datei angibt, verhält sich RenameFile unter Windows anders als unter Linux. Unter Windows schlägt die Umbenennung fehl. Unter Linux entfernt RenameFile
die vorhandene Datei ohne weitere Meldung.
Beispiel:
//In diesem Beispiel befinden sich eine Schaltfläche, ein String-Gitter und ein Speichern-Dialogfeld in einem Formular.
//Beim Klicken auf die Schaltfläche wird der Benutzer zur Eingabe eines Dateinamens aufgefordert.
//Bestätigt er mit OK, wird der Inhalt des String-Gitters in die angegebene Datei geschrieben.
//Dabei werden zusätzliche Informationen in die Datei aufgenommen, damit sie mit der Funktion FileRead gelesen werden kann.
procedure TForm1.Button1Click(Sender: TObject);
var
BackupName: string;
FileHandle: Integer;
StringLen: Integer;
X: Integer;
Y: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
BackupName := ExtractFileName(SaveDialog1.FileName);
BackupName := ChangeFileExt(BackupName, '.BAK');
if not RenameFile(SaveDialog1.FileName, BackupName) then
raise Exception.Create('Unable to create backup file.');
end;
FileHandle := FileCreate(SaveDialog1.FileName);
{ Anzahl der Zeilen und Spalten des Gitters in Datei schreiben. }
FileWrite(FileHandle,
StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
for X := 0 to StringGrid1.ColCount – 1 do
begin
for Y := 0 to StringGrid1.RowCount – 1 do
begin
{ Zuerst die Länge und danach den Inhalt der einzelnen Strings speichern. }
StringLen := Length(StringGrid1.CellsX,Y);
FileWrite(FileHandle, StringLen, SizeOf(StringLen));
FileWrite(FileHandle,
StringGrid1.CellsX,Y, Length(StringGrid1.CellsX,Y);
end;
end;
FileClose(FileHandle);
end;
end;