[Back to FILES SWAG index] [Back to Main SWAG index] [Original]
{
JASON GROOMS
| Can anyone give me some code for a procedure to delete a file? I
| cannot use the DOS EXEC procedure, due to memory conflicts, but I can
| call on interrupts.
Here is a routine to add to your toolbox which will delete a file
through DOS.
}
function DeleteFile(FN : PathStr) : Boolean;
var
Regs : Registers;
begin
FN := FN + #0; { Add NUL chr for DOS }
Regs.AH := $41;
Regs.DX := Ofs(FN) + 1; { Add 1 to bypass length byte }
Regs.DS := Seg(FN);
MsDos(Regs);
DeleteFile := NOT (Regs.Flags AND $0 = $0)
end;
{ Here is another routine to rename a file through DOS. }
function RenameFile(ON, NN : PathStr) : Boolean;
var
Regs : Registers;
begin
ON := ON + #0; { Add NUL chr for DOS }
NN := NN + #0; { Add NUL chr for DOS }
Regs.AH := $56;
Regs.DX := Ofs(ON) + 1; { Add 1 to bypass length byte }
Regs.DS := Seg(ON);
Regs.DI := Ofs(NN) + 1; { Add 1 to bypass length byte }
Regs.ES := Seg(NN);
MsDos(Regs);
RenameFile := NOT (Regs.Flags AND $0 = $0)
end;
{
These two routines require the Dos unit.
** Be warned that the delete file routine does not confirm the
delete, meaning it WILL delete the file if it exists so use
with care.
}
[Back to FILES SWAG index] [Back to Main SWAG index] [Original]