Hola gente, necesito que me ayuden con un problema que tengo con idFtp. Lo único que quiero hacer es bajar un archivo desde un FTP pero no estoy pudiendo, les digo porque.
Antes que nada quiero deciles que he tomado como base para lo que quiero hacer lo que indica
salvica en uno de los hilos donde el mismo cita un ejemplo de
trucomania.
Si accedo por algún browser el archivo que quiero bajar se encuantra en una dirección como la siguiente:
ftp.nombre.com/clientes/htm/, colocando esta URL, en el browser veo los archivos listados y basta con solo hacer click en uno para bajarlo.
El tema es que desde idFTP solo me puedo conectar si en la propiedad Host del componente le coloco
ftp.nombre.com y no toda la ruta donde se encuentra el archivo, por lo cual al momente de verificar el tamaño del archivo en cuestión, no lo hace, si no que asigna -1 como tamaño del mismo. El archivo que quiero bajar es una tabla DBF. El código seria algo como esto:
Código Delphi
[-]Procedure TForm1.Button2Click(Sender: TObject);
Var
Tam,FHandle,BytesEnviados : integer;
Begin
IdFTP1.Username := 'usuario@usuario.com';
IdFTP1.Password := 'password';
IdFTP1.Host := 'ftp.nombre.com';
Try
IdFTP1.Connect ;
Except
Showmessage ('El Archivo no fue recibido');
End;
If IdFTP1.Connected then
Begin
IdFTP1.TransferType := ftBinary;
Tam := IdFTP1.Size('/clientes/htm/archivo.dbf');
ProgressBar1.Min := 0;
ProgressBar1.Max := Tam;
IdFTP1.BeginWork(wmRead);
Try
IdFTP1.Get('/clientes/htm/archivo.dbf',
'Archivo.dbf',true);
IdFTP1.EndWork(wmRead);
IdFTP1.Disconnect;
Finally
FHandle := FileOpen('Archivo.txt', 0);
BytesEnviados := Getfilesize(FHandle,nil);
FileClose(FHandle);
If BytesEnviados < Tam then
ShowMessage('El Archivo no pudo ser Recibido')
Else
ShowMessage
('El Archivo fue Recibido corréctamente');
Close;
End;
End;
End;
Procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
Const AWorkCount: Integer);
Begin
ProgressBar1.Position := AWorkCount
End;
Espero que me puedan ayudar, muchas gracias.