Ver Mensaje Individual
  #2  
Antiguo 21-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola tgsistemas.

Probá este procedimiento:
Código Delphi [-]
...
uses DateUtils;

procedure DepurarArchivos(const Ruta, Ext: string);

  function GetFileDateTime(Nombre: string): TDateTime;
  var
    Hnd: integer;
  begin
    Hnd := FileOpen(Nombre, 0);
    try
      Result:= FileDateToDateTime(FileGetDate(Hnd));
    finally
      FileClose(Hnd);
    end;
  end;

var
  SR: TSearchRec;
  dt: TDateTime;
begin
  if FindFirst(Ruta + Ext,  faArchive , SR) = 0 then
  begin
    repeat
      dt:= GetFileDateTime(Ruta + SR.Name); // obtener fecha ultima modificación
      if (DaysBetween(dt, Now) > 30) and    // si tiene más de 30 días 
         (DayOf(dt) <> DaysInAMonth(YearOf(dt), MonthOf(dt))) then  // y no es fin de mes
       DeleteFile(Ruta + SR.Name);
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
     DepurarArchivos('C:\TEMPORAL\','*.RAR');

Edito:
En mis pruebas funcionó bién, pero como se trata de borrado de archivos, realizá tus pruebas reemplazando la línea
Código Delphi [-]
DeleteFile(Ruta + SR.Name);
por
Código Delphi [-]
Form1.Memo1.Lines.Add(Ruta + SR.Name)

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-01-2011 a las 06:09:11.
Responder Con Cita