Az alacsony szintű törléseknél - ilyet végez a DeleteFile eljárás is - a file letörlődik. A következő kódrészlet segítségével azonban, egy API hívást használva a kukába helyeződik át a file. Egy file törléséhez egyszerűen meg kell hívni a DeleteFileWithUndo() eljárást, paraméternek megadva a file nevét. Amennyiben a művelet sikeres volt, az eljárás TRUE-t ad vissza...

  ...

uses ShellAPI;

  ...

function DeleteFileWithUndo( sFileName : string ): boolean;
var
  fos : TSHFileOpStruct;
begin
  FillChar( fos, SizeOf( fos ), 0 );
  with fos do
  begin
   wFunc := FO_DELETE;
   pFrom := PChar( sFileName );
   fFlags := FOF_ALLOWUNDO
   or FOF_NOCONFIRMATION
   or FOF_SILENT;
  end;
  Result := ( 0 = ShFileOperation( fos ) );
end;