Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   obtener fechas fichero (https://www.clubdelphi.com/foros/showthread.php?t=49655)

meme 26-10-2007 10:24:14

obtener fechas fichero
 
Hola,

En mi aplicacion, necesito saber las fecha de modificacion y la de creacion de ficheros. Usando GetFileTime consigo la de modificacion, como puedo hacer para obtener la de creacion??

Gracias

dec 26-10-2007 10:32:22

Hola,

No creo que te cueste adaptarlo a tus necesidades en C++ Builder:

Código Delphi [-]
type
  TFechasArchivo = (faCreacion, faModificacion, faUltimoAcceso);

(* Basada en una función escrita por Domingo Seoane en:
   http://www.clubdelphi.com/foros/showthread.php?t=30518
*)
function TUtilesArchivos.FechasArchivo(
 archivo: string; tipoFecha: TFechasArchivo): string;
var
  SR: TSearchRec;
  sysTime: SYSTEMTIME;
  fileTime: TFILETIME;
begin
  if (FindFirst(archivo, faAnyFile, SR) = 0) then begin
    case tipoFecha of
      faCreacion: FileTimeToLocalFileTime(SR.FindData.ftCreationTime, fileTime);
      faModificacion: FileTimeToLocalFileTime(SR.FindData.ftLastWriteTime, fileTime);
      faUltimoAcceso: FileTimeToLocalFileTime(SR.FindData.ftLastAccessTime, fileTime);
    else
      FileTimeToLocalFileTime(SR.FindData.ftCreationTime, fileTime);
    end;
    FileTimeToSystemTime(fileTime, sysTime);
    result := DateTimeToStr(SystemTimeToDateTime(sysTime));
    FindClose(SR);
  end
  else
    result := EmptyStr;
end;

meme 27-10-2007 16:12:05

Hola,

Antes de nada, gracias por responder. He intentado adaptarlo a mis necesidades pero me da un error en las llamadas FileTimeTimeToLocalTime y FileTimeToSystemTime y no compila. Creo que el problema viene de la declaracion de fileTime. El codigo es el siguiente.

TSearchRec sR;
SYSTEMTIME sysTime;
FILETIME fileTime;
bool ok=false;
AnsiString result;
AnsiString archivo=Edit1->Text;
if(FindFirst(archivo,faAnyFile,sR)==0)
{
ok=FileTimeToLocalFileTime(sR.FindData.ftCreationTime,fileTime);
ok=FileTimeToSystemTime(fileTime,sysTime);
result=DateTimeToStr(sysTime);
}
FindClose(sR);


La franja horaria es GMT +2. Ahora son las 07:37:55.

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