Ver Mensaje Individual
  #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: 19.435
Reputación: 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