Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Fecha de Directorio en Windows XP (https://www.clubdelphi.com/foros/showthread.php?t=5808)

vicvil 05-12-2003 01:56:43

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.

negama 09-01-2006 23:51:15

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;

vtdeleon 10-01-2006 03:11:49

Saludos

negama por favor utiliza las etiquetas vB (se ve mejor, no?), informate en los enlaces de mi firma. ;)


La franja horaria es GMT +2. Ahora son las 10:26:21.

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