Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2003
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 21
vicvil Va por buen camino
Fecha de Directorio en Windows XP

Tengo un problema al leer la fecha de un directorio en Windows XP. Cuando corro el sistema en Windows 98 no hay problemas ya que este conserva siempre la misma fecha pero en Windows XP la fecha del directorio cambia cada vez que se agregan o eliminan archivos, pero me he dado cuenta que este maneja dos fechas, la de modificacion y la de creación. Mi pregunta es ¿como puedo obtener la fecha de creación en Windows XP? si es que se puede, y si existe la forma ¿servirá para Windows 98?
Gracias.
Responder Con Cita
  #2  
Antiguo 09-01-2006
negama negama is offline
Miembro
 
Registrado: may 2003
Posts: 21
Poder: 0
negama Va por buen camino
Talking Fecha de creacion, modificacion y ultimo acceso

En realidad XP maneja tres fechas: de creacion, modificacion y ultimo acceso, este ejemplo es para acceder a tales fechas de un archivo espero que te sirva para adaptarlo al directorio, el meollo del asunto está en el GetFileTime ..
Código Delphi [-]
function obtenerFechasFichero (const FileName: string; var Created: TDateTime;
         var Accessed: TDateTime; var Modified: TDateTime): Boolean;
var
  h: THandle;
  Info1, Info2, Info3: TFileTime;
  SysTimeStruct: SYSTEMTIME;
  TimeZoneInfo: TTimeZoneInformation;
  Bias: Double;
begin
  Result := False;
  Bias   := 0;
  h      := FileOpen(FileName, fmOpenRead or fmShareDenyNone);
  if h > 0 then
  begin
    try
      if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then
        Bias := TimeZoneInfo.Bias / 1440; // 60x24
      GetFileTime(h, @Info1, @Info2, @Info3);
      if FileTimeToSystemTime(Info1, SysTimeStruct) then
        Created := SystemTimeToDateTime(SysTimeStruct) - Bias;
      if FileTimeToSystemTime(Info2, SysTimeStruct) then
        Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias;
      if FileTimeToSystemTime(Info3, SysTimeStruct) then
        Modified := SystemTimeToDateTime(SysTimeStruct) - Bias;
      Result := True;
    finally
      FileClose(h);
    end;
  end;
end;

.
.
.

procedure TForm1.Button1Click(Sender: TObject);
var
fechaCreacion, ultimoAcceso, ultimaModificacion : TDateTime;

begin

//fechas
  if obtenerFechasFichero (txtFichero.Text, fechaCreacion, ultimoAcceso, ultimaModificacion) then
  begin
    RichEdit1.Lines.Add('Fecha creación: ' + DateToStr (fechaCreacion));
    RichEdit1.Lines.Add('Fecha último acceso: ' + DateToStr(ultimoAcceso));
    RichEdit1.Lines.Add('Fecha modificación: ' + DateToStr(ultimaModificacion));
  end;

end;
__________________
"Aplica lo q sabes, no lo q crees saber"

Última edición por vtdeleon fecha: 10-01-2006 a las 03:10:49.
Responder Con Cita
  #3  
Antiguo 10-01-2006
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
Saludos

negama por favor utiliza las etiquetas vB (se ve mejor, no?), informate en los enlaces de mi firma.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
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 00:19:04.


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