Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2014
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Fecha Modificacion fichero

Hola, amigos.
Estoy intentando ver la fecha de modificación de un fichero que está en mi página de internet.
Por más vueltas que he dado, no he encontrado nada. La function FileAge, no funciona, pues el fichero de internet viene dado como puntero y no como string.
Agradezco cualquier información.
Saludos.
Responder Con Cita
  #2  
Antiguo 28-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Cómo lo haces, con indy?
Responder Con Cita
  #3  
Antiguo 28-09-2014
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
No sé cómo hacerlo. No he usado Indi. Pero admito cualquier solución.
Gracias Casi.
Responder Con Cita
  #4  
Antiguo 28-09-2014
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Estoy más o menos aquí en este fragmento de código
Código Delphi [-]
hFile := CreateFile(PChar(Archivo), GENERIC_WRITE, 0, nil, CREATE_ALWAYS,
    FILE_ATTRIBUTE_NORMAL, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then
  begin
    hNet := InternetOpen('agent', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
    if (hNet <> nil) then  //Si existe conexion a internet
    begin
      hUrl := InternetOpenUrl(hNet, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
      if (hUrl <> nil) then  // Existe el fichero en internet
      begin   
      FechaModiFileInternet:=FileAge(hFile);
Responder Con Cita
  #5  
Antiguo 28-09-2014
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Mañana tengo que madrugar para ir a trabajar. Perdonar si no os contesto esta noche.
Saludos.
Responder Con Cita
  #6  
Antiguo 29-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jhonalone.
Cita:
Empezado por jhonalone Ver Mensaje
No sé cómo hacerlo. No he usado Indi. Pero admito cualquier solución.
Gracias Casi.
Usando el componente TidHTTP de Indy es muy simple:
Código Delphi [-]
uses idHTTP;

function GetInternetFileDateTime(aFileName: string): TDateTime;
begin
  with TidHTTP.Create(nil) do
  try
    Head(aFileName);
    Result:= Response.LastModified;
  finally
    Free;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 29-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jhonalone,

Cita:
Empezado por jhonalone
...Estoy intentando ver la fecha de modificación de un fichero que está en mi página de internet...


Revisa este código:
Código Delphi [-]
 unit Unit1;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, WinInet;
 
 type
   TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.dfm}
 
 // Obtiene la última fecha de modificación de un archivo en internet
 function GetLastModifiedDate(Url : String) : TDateTime;
 var
    hInet : HINTERNET;
    hUrl : HINTERNET;
    LastModifiedDate : SYSTEMTIME;
    SizeDate : DWORD;
    Index : DWORD;
 begin
    try
       hInet := InternetOpen(PChar(Application.Title),INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
       hUrl := InternetOpenURL(hInet,PChar(Url),nil,0,0,0);
       SizeDate := SizeOf(LastModifiedDate);
       Index := 0;
       if HttpQueryInfo(hUrl,
                        HTTP_QUERY_LAST_MODIFIED or HTTP_QUERY_FLAG_SYSTEMTIME,
                        @LastModifiedDate,
                        SizeDate,
                        Index)
       then
          Result := SystemTimeToDateTime(LastModifiedDate)
       else
          Result := 0;
    finally
       InternetCloseHandle(hUrl);
       InternetCloseHandle(hInet);
    end;
 end;
 
 // Muestra la última fecha de modificación de un archivo en internet
 procedure TForm1.Button1Click(Sender: TObject);
 var
    Url : String;
    LastModifiedDate : String;
 begin
    Url := 'http://www.math-magic.com/pdf_files/basic_memorization/prime.pdf';
    LastModifiedDate := FormatDateTime('yyyy/mm/dd hh:mm:ss',GetLastModifiedDate(Url));
    MessageDlg(LastModifiedDate,mtInformation,[mbOK],0);
 end;
 
 end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, obtiene la fecha de última modificación de un recurso url por medio de las funciones de Windows Internet (WinINet) application programming interface (API) .

Espero sea útil

Nelson.
Responder Con Cita
  #8  
Antiguo 29-09-2014
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Primero: gracias a Ecfisa y a Nelson (por orden de respuestas), por vuestro esfuerzo al responderme.

Segundo: os cuento.

Ecfisa, Todavía no me puedo creer que un código tuyo no funcione a la primera. Me da un error en la línea del result, con la excepción EIdHTTPProtocolException con el mensaje "HTTP/1.1 404 Not Found" Puede que los Indy que he instalado estén obsoletos, son los que venían con Dephi7.

Nelson, tu código funciona perfectamente, excepto con algunas extensiones de ficheros. Concretamente con ".php", no sé si con alguna otra. Ah, la función discrimina entre mayúsculas y minúsculas, en el nombre de la url, por le interesa a alguien.

Nuevamente gracias a ambos por vuestro esfuerzo e interés.

Saludos.

Juan Manuel.
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
Extraer la fecha de modificación de un fichero mediante FTP JoysticK Internet 3 23-08-2018 01:30:30
Fecha de modificación de un archivo ftp Vlady Varios 3 09-01-2012 09:20:41
Obtener las fechas de un fichero (creación, modificación y último acceso) Neftali [Germán.Estévez] Trucos 0 12-06-2006 17:48:07
Obtener la fecha de modificación de un archivo Javi2 Varios 2 08-11-2004 09:49:36
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 22:10:02.


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