Hola,
Cita:
Empezado por Luis Alberto
(...) por medio del WinInet no es posble obtener la fecha y la hora solamente el tamaño...
|
Yo no pondría las manos en el fuego: que no sepa hacerlo, no quiere decir que no se pueda. Si lo dices por la siguiente frase, extraída de cierto
artículo de JM...
Cita:
La única información que podemos obtener de un archivo es su tamaño, a través de la función FtpGetFileSize.
|
Piensa que antes y después de esa frase se dicen más cosas... pero, en fin, basta ya, puesto que parezco estar dando lecciones y yo tampoco he adentrado en el tema como para conseguir hacer lo que te propones mediante el API WinInet. Es solamente que creo que imposible no es.
Se me ocurrió intentarlo con el componente "IdFtp" de los
componentes Indy y con esto ya es otra cosa: como podrás ver, propongo un código que he probado y funciona, pero, vuelvo a lo mismo: este componente es bastante más potente que lo que verás: puede que existan además otras formas de hacer lo propio. A mí, personalmente, me parece un poco chapuza lo siguiente, pero, en fin, funcionar, aparentemente, funciona sin problemas:
Código Delphi
[-]
uses
IdFTP;
procedure TForm1.Button1Click(Sender: TObject);
var
IdFTP: TIdFTP;
temp: TStrings;
begin
temp := TStringList.Create;
IdFTP := TIdFTP.Create(Self);
try
IdFTP.Username := 'usuario';
IdFTP.Password := 'contrasena';
IdFTP.Host := 'ftp.servidor.es';
try
IdFTP.Connect(); IdFTP.ChangeDir('/subdirectorio/otrosubdirectorio');
IdFTP.List(temp, 'archivo.html', true);
if (IdFTP.DirectoryListing <> nil) then
ShowMessage(DateTimeToStr(IdFTP.DirectoryListing.Items[0].ModifiedDate))
else
raise Exception.Create('Asegúrate que el archivo exista en el Servidor');
except
temp.Free;
IdFTP.Free;
end;
finally
IdFTP.Free;
end;
end;