Ennek megvalósításához létrehozunk egy függvényt DeleteFileToRecycleBin névvel. Paraméterként a törlendő állomány nevét kell megadnunk teljes elérési útvonallal együtt. Ha a törlés sikeres volt, akkor igaz értéket ad vissza függvényünk.
A törléshez az SHFileOperation függvényt használjuk, mellyel különféle állomány műveletek végezhetők, így például a törlés is. A függvény paraméterként egy TSHFileOpStruct struktúrát vár, melyben leírhatjuk, hogy milyen műveletet végezzen el és azt hogyan tegye.
function DeleteFileToRecycleBin(filename: string): boolean;
var
fos: TSHFileOpStruct;
begin
FillChar(fos, SizeOf(TSHFileOpStruct), 0);
with fos do begin
Az elvégezendő művelet a wFunc mezőbe kerül.
A törlendő állomány neve a pFrom mezőben kap helyet.
A fFlags mezőben pedig megadjuk, hogy a művelet visszavonható legyen, ne legyen felhasználói megerősítés és ne jelenjen meg folyamat jelző ablak se.
fFlags:=FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;
end;
Végül már csak meg kell hívnunk a SHFileOperation függvényt.
result:=SHFileOperation(fos)=0;
end;
A FOF_ALLOWUNDO konstans biztosítja azt, hogy a művelet visszavonható. Állomány törlésnél ez pedig csak úgy lehetséges, ha az állomány a Lomtárba kerül.