Mega Code Archive

 
Categories / Delphi / Files
 

Delete files with Undo

Title: Delete files with Undo Question: How can I delete files with undo (move to recycle bin)? Answer: { Thanks to Poul Dige for this comment: ALWAYS make sure, that FileName ends with two chr(0), i.e. FileName := FileName+#0+#0; If you want to process more than one file, the file names should be separated by a single #0, e.g. FileName := File1+#0+File2+#0.....+FileN+#0+#0; } uses ShellApi; function DeleteFileWithUndo(FileName: string): boolean; var SHFileOpStruct: TSHFileOpStruct; begin FillChar(SHFileOpStruct, SizeOf(SHFileOpStruct), 0); with SHFileOpStruct do begin { specifies the operation } wFunc := FO_DELETE; { specifies the filename to operate } pFrom := PChar(FileName); { flags for controlling the operation } { Preserves undo information, Responds with yes to all for any dialog box that is displayed, doesn't display a progress dialog } fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT; end; { returns true if successful, otherwise false } result := (0 = ShFileOperation(SHFileOpStruct)); end;