Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Enviar uno o más archivos a la papelera de reciclaje (https://www.clubdelphi.com/foros/showthread.php?t=80412)

dec 07-06-2006 20:46:21

Enviar uno o más archivos a la papelera de reciclaje
 
Con las siguientes funciones es posible enviar a la papelera de reciclaje de Windows (en lugar de borrarlos) uno o varios archivos a la vez.

La primera función es en realidad la encargada de realizar el trabajo. Admite como parámetro la ruta de un archivo, el que queremos enviar a la papelera.

La segunda función admite la ruta de un directorio, y también una determina máscara de archivos, de modo que puedan enviarse a la papelera varios archivos de una vez.

Nótese que la segunda función trabaja con la primera.

Código Delphi [-]
uses
  ShlObj, Masks, ShellApi;

procedure ALaPapelera(const archivo: string);
var
  FOS: TSHFileOpStruct;
begin
  if FileExists(archivo) then begin
    FillChar(FOS, SizeOf(FOS), #0);
    FOS.wFunc := FO_DELETE;
    FOS.Wnd := GetDesktopWindow;
    FOS.pFrom := PChar(archivo+#0#0);
    FOS.fFlags := FOF_NOCONFIRMATION
      or FOF_SILENT or FOF_ALLOWUNDO;
    ShFileOperation(FOS);
  end;
end;

procedure ALaPapelera(dir, mascara: string);
var
  SR: TSearchRec;
begin
  dir := IncludeTrailingPathDelimiter(dir);
  FindFirst(dir+mascara, faAnyFile, SR);
  repeat
    ALaPapelera(dir + SR.Name);
  until FindNext(SR) <> 0;
  SysUtils.FindClose(SR);
end;


La franja horaria es GMT +2. Ahora son las 02:12:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi