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 11-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Fecha de Archivo

Saludos

Como puedo saber la fecha y/o hora de creacion o modificacion de un archivo cualquiera ?
Responder Con Cita
  #2  
Antiguo 11-03-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Aquí tienes una funcioncilla que te devuelve las fechas de un archivos tal i como se ven en las propiedades (Creación, última modificación y último acceso). Está basada en un Tip que encontré por Internet (Chami.com concretamente) y modificada para que devuelve las tres posibilidades, segun un parámetro que le pasas.

Código Delphi [-]
 //------------------------------------------------------------------------------
 function GetFileLastAccessTime(sFileName:string;
                               Date:Integer
                               {0=creation;
                               1=Ultima escritura
                               2=Ultimo Acceso} ):TDateTime;
 var
   ffd : TWin32FindData;
   dft : DWord;
   lft : TFileTime;
   h   : THandle;
 begin
   // Buscamos la información (fichero)
   h := Windows.FindFirstFile(PChar(sFileName), ffd);
   // Encontrado?
   if(INVALID_HANDLE_VALUE <> h)then begin
     // Sólo buscamos uno, por lo tantocerramos la búsqueda
     Windows.FindClose( h );
     // segun el tipo de fecha
     if (Date = 0) then begin
       FileTimeToLocalFileTime(ffd.ftCreationTime, lft);
     end
     else if (Date = 1) then begin
       FileTimeToLocalFileTime(ffd.ftLastWriteTime, lft);
     end
     else if (Date = 2) then begin
       FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft);
     end
     else begin
       // Tipo Incorrecto
       Exit;
     end;
 
     // Lo convierte a DOS-Time
     FileTimeToDosDateTime(lft, LongRec(dft).Hi, LongRec(dft).Lo);
     // finalmente lo vuelve a convertir al tipo Delphi (TDateTime)
     Result := FileDateToDateTime(dft);
   end;
 end;
 //------------------------------------------------------------------------------

Para utilizarla basta un código como éste:

Código Delphi [-]
   Str := 'c:\Temp\MSG_File.log';
   Str := DateTimeToStr(GetFileLastAccessTime(Str, 0));
   Memo1.Lines.Add('Creacion: ' + Str);
   Memo1.Lines.Add('------------------------');
   Str := 'c:\Temp\MSG_File.log';
   Str := DateTimeToStr(GetFileLastAccessTime(Str, 1));
   Memo1.Lines.Add('Última escritura: ' + Str);
   Memo1.Lines.Add('------------------------');
   Str := 'c:\Temp\MSG_File.log';
   Str := DateTimeToStr(GetFileLastAccessTime(Str, 2));
   Memo1.Lines.Add('Último Acceso: ' + Str);
   Memo1.Lines.Add('------------------------');

Delphi posee en la Unit SysUtils la función FileAge, que utiliza ftLastWriteTime (que supongo que es el más utilizado), de forma que es una variante más concreta de ésta.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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


La franja horaria es GMT +2. Ahora son las 20:32:26.


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