[Back to FILES SWAG index]  [Back to Main SWAG index]  [Original]

{
> In my program I create some temporary files, but I like to delete them
> before my program is finished.

Here, the assembly code:
}

Function DeleteFile(FileName : string) : integer; assembler;
{ Deletes an external file.
    Returns: 0 if successful, non-zero DOS error code otherwise. }
Asm
  push ds
  lds si,FileName
  inc byte ptr [si]
  mov bl,byte ptr [si]
  xor bh,bh
  mov dx,si
  inc dx
  mov byte ptr [si+bx],0
  mov ah,41h
  int 21h
  jc  @error
  xor ax,ax
@error:
  dec byte ptr [si]
  pop ds
End; { DeleteFile }

var
  Result : integer;
  Path : string;

Begin
  Path := 'C:\AUTOEXEC.BAK';
  Write('Attempting to delete ', Path, '... ');
  Result := DeleteFile(Path);
  if Result = 0 then
    WriteLn(#13, Path, ' successfully deleted.  ')
  else
    WriteLn(#13'Unable to delete ', Path, '. DOS error ', Result, ' occured.')
End.

[Back to FILES SWAG index]  [Back to Main SWAG index]  [Original]