Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-01-2011
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
buscar archivos con mascara y por fecha de creación

Hola a tod@s,

llevo toda la tarde mirando el truco 15, el truco 63 y el truco 72 pero no consigo entender del todo las diferentes funciones

Quiero desarrollar una aplicación que busque en un directorio todos los ficheros con que cumplan estas 3 condiciones :
  • máscara = *.rar
  • fecha de creación < (fecha del sistema - 30 días)
  • fecha de creación <> final de mes

Como es obvio, se trata de automatizar la limpieza de un directorio contenedor de backup de ficheros en rar conservando siempre los últimos 30 días y todos los finales de mes anteriores.

He estado probando los ejemplos de los trucos pero no he sido capaz de crear un proceso que busque los archivos con las tres condiciones indicadas, por eso os pido ayuda de si es posible hacerlo y por dónde empezar.

Saludos a tod@s y muchas gracias
__________________
Toni | blog
Responder Con Cita
  #2  
Antiguo 21-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
  #3  
Antiguo 21-01-2011
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
gracias ecfisa lo he probado y parece que funciona perfectamente

muuchas gracias
__________________
Toni | blog
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
buscar ficheros con mascara en un directorio petete2008 API de Windows 2 06-09-2010 14:44:16
fecha creacion fichero meme C++ Builder 2 10-03-2008 08:29:23
Creacion de archivos muppett Varios 6 20-02-2008 00:44:40
Cambiar fecha de creacion Iskariote0087 Varios 2 09-06-2006 20:24:06
Buscar por fecha.....ayuda!!! ronimaxh Firebird e Interbase 6 18-08-2004 14:38:29


La franja horaria es GMT +2. Ahora son las 05:46:39.


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
Copyright 1996-2007 Club Delphi