Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 11-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Modelador
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.239
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
Neftali Neftali is offline
Aporreador de teclados
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 12.561
Neftali Va por buen camino
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.
__________________
Neftalí -web - MyDropBox-
Guía de estilo, Guía alternativa, TAG's.
*Añade tu foto al Club*

(UPDATE) TrackInfo v.1.7b

Contactar con el Clubdelphi


P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas
Desplegado

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:17:28.


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