Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-03-2022
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Fecha de modificación de Ejecutable

Encontré este código para obtener la fecha de modificación de un archivo:

Código:
function GetFileDate(TheFileName: string): Double;
var
     FHandle: integer;
begin
     FHandle := FileOpen(TheFileName, 0);
     try
          Result := FileDateToDateTime(FileGetDate(FHandle));
     finally
          FileClose(FHandle);
     end;
end;
Sin embargo no funciona si se trata de obtener la fecha del EXE que se esta ejecutando, (FILEAGE funciona*, pero no funciona si se trata de obtener la fecha de un archivo en una RED local);

Que me pueden sugerir para obtener esa fecha sin importar si es el ejecutable que uso o alguno en la red?

Gracias
Responder Con Cita
  #2  
Antiguo 03-03-2022
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Cita:
Empezado por ArtPortEsp Ver Mensaje
Encontré este código para obtener la fecha de modificación de un archivo:

Código:
function GetFileDate(TheFileName: string): Double;
var
     FHandle: integer;
begin
     FHandle := FileOpen(TheFileName, 0);
     try
          Result := FileDateToDateTime(FileGetDate(FHandle));
     finally
          FileClose(FHandle);
     end;
end;
Sin embargo no funciona si se trata de obtener la fecha del EXE que se esta ejecutando, (FILEAGE funciona*, pero no funciona si se trata de obtener la fecha de un archivo en una RED local);

Que me pueden sugerir para obtener esa fecha sin importar si es el ejecutable que uso o alguno en la red?

Gracias
Olvide mencionar que uso D7
Responder Con Cita
  #3  
Antiguo 03-03-2022
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ArtPortEsp Ver Mensaje
Olvide mencionar que uso D7
A ver si esto te sirve

Fecha Modificación de Fichero

En el mensaje 11 específicamente.

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 03-03-2022
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: 18.285
Poder: 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í en la sección de trucos del club, tienes uno específicamente para eso:

Obtener las fechas de un fichero (creación, modificación y último acceso)

Código Delphi [-]
// ================================================================
// Devuelve las tres fechas (Creación, modificación y último acceso)
// de un fichero que se pasa como parámetro.
// Devuelve FALSO si el fichero no se ha podido acceder, sea porque
// no existe o porque no se tienen permisos. Las fechas se devuelven
// en tres parámetros de ipo DateTime
// ================================================================
function GetFileTimes(FileName : string;
 var Created : TDateTime;
 var Modified : TDateTime;
 var Accessed : TDateTime) : boolean;
__________________
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
  #5  
Antiguo 03-03-2022
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: 18.285
Poder: 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
Y aquí hay una variante de David, que me gusta bastante también:

https://www.clubdelphi.com/foros/sho...40&postcount=2
__________________
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
  #6  
Antiguo 03-03-2022
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
El problema de acceder a la fecha de un fichero de un ejecutable que se está ejecutando, es el mismo que de qualquier archivo abierto edn modo no compartido. No se puede usar ningun código que trarte de abrirlo porque eso no será posible. La solución el cambiar de camino, como apuntaba [egostar] aquí.

Estas dos opciones pueden servir:
Con FindFirst:
Código Delphi [-]
function GetFileModifyDate(FileName: string): TDateTime;
var
  SearchRec: TSearchRec;
begin  
  if FindFirst(Filename,faAnyFile,SearchRec) = 0 then
    Result:= FileDateToDateTime(SearchRec.Time)
  else
    Result:= 0;
  FindClose(SearchRec);
end;

Con GetFileAttributesEx:
Código Delphi [-]
function GetModifyFileDate(FileName: String): TDate;
var
  FileData:  WIN32_FILE_ATTRIBUTE_DATA;
  SystemTime: TSYSTEMTIME;
begin
  GetFileAttributesEx(PCHAR(FileName), GetFileExInfoStandard, @FileData);
  FileTimeToSystemTime(FileData.ftLastWriteTime, SystemTime);
  Result:= EncodeDate(SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay);
end;

Saludos.
Responder Con Cita
  #7  
Antiguo 03-03-2022
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Muchas gracias por su ayuda amigos; todas son excelente opciones.

Probé este código que referenció NEFTALI:
Código:
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;
y me quede con la segunda opción de escafandra (por alguna razón funciono notablemente mas rápido).

Nuevamente, muchas gracias.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Fecha Modificacion fichero jhonalone Internet 16 07-10-2014 19:29:32
Fecha de modificación de un archivo ftp Vlady Varios 3 09-01-2012 09:20:41
Ordenar archivo por fecha de modificacion Paulao Varios 0 07-11-2011 16:36:22
Fecha de modificacion de mi base de datos jfontane PHP 1 07-01-2007 14:11:10
Fecha modificacion de un campo de la tabla into_enter Conexión con bases de datos 2 18-06-2003 09:57:19


La franja horaria es GMT +2. Ahora son las 13:03:52.


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