Thursday, November 02, 2006

Smazání souboru do koše

Teď si ukážeme jeden ze způsobů, jak vybraný soubor smazat do Koše (Recycle Bin). Pomůže nám k tomu knihovna ShellAPI. Důležitý je příznak FOF_ALLOWUNDO, který právě zajistí to, že soubor nebude smazán přímo, ale bude použit Koš.
function DoKose(const filename : string) : boolean;
var FileOp : TSHFileOpStruct;
begin
if integer(GetFileAttributes(PChar(Filename))) <> -1 then
begin
ZeroMemory(@FileOp, SizeOf(FileOp));
FileOp.wFunc := FO_DELETE;
FileOp.pFrom := PChar(Filename);
FileOp.fFlags := FOF_ALLOWUNDO or FOF_SILENT or FOF_NOCONFIRMATION;
Result:=(SHFileOperation(FileOp)=0);
end
else
Result := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if DoKose('c:\soubor.txt') then ShowMessage('Soubor byl přesunut do Koše');
end;