Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Bajar varios archivos de internet con idFTP (https://www.clubdelphi.com/foros/showthread.php?t=65930)

marilinspi 22-01-2010 15:28:55

Bajar varios archivos de internet con idFTP
 
hola, ya he logrado subir todos mis archivos a internet son como 30... recorri mi carpeta 'prueba' y fui subiendo de a uno, mediante
Código:

var
sr: TSearchRec;
Directorio:String;
begin
Directorio:='C:\prueba\';
if idFTP1.Connected then
begin
  if FindFirst(Directorio + '*', faAnyFile, sr) = 0 then
    repeat
      if (sr.Attr and faDirectory = 0) or (sr.Name <> '.')and (sr.Name <> '..') then
        idFTP1.Put(Directorio + sr.Name, 'public_html/Descargas/pruebas/'+ sr.Name); 
    until FindNext(sr) <> 0;
  FindClose(sr);
  idFTP1.Disconnect;
  ShowMessage('Fichero subido.');
end;
end;

ahora lo que necesito es bajar todos esos archivos...y lo que no se es como recorrer el directorio en la web para ir bajando de a uno. Gracias desde ya.

cocute 22-01-2010 21:18:08

pues deberia de ser lo mismo pero en vez de con idFTP1.put con idFTP1.get,
e invirtiendo las localizaciones claro esta.

roman 22-01-2010 21:34:39

Y para recorrer la carpeta en el servidor puedes usar el método List del IdFtp y su propiedad DirectoryListing.

// Saludos

marilinspi 23-01-2010 13:08:07

hola gracias por sus respuestas, lo pude resolver asi
Código:

           
for I:= 0 to IdFTP1.DirectoryListing.Count-1 do
            begin
              idFTP1.Get(idFTP1.DirectoryListing[i].FileName, 'C:\Prueba\' + idFTP1.DirectoryListing[i].FileName );                ProgressBar2.Position:=ProgressBar2.Position+1;
              Sleep(500);
            end;
          except
            MessageDlg('No se completo la descarga de archivos.', mtWarning, [mbOK], 0);
          end;

Otra cosita, como tendria que hacer para que el archivo que bajo,reemplaze al ya existente, porque si ya existe me da un error " Destination file already exists" y no me lo baja. Gracias desde ya.

marilinspi 23-01-2010 13:20:27

gracias a todos, lo puede resover asi:
Código:

           
for I:= 0 to IdFTP1.DirectoryListing.Count-1 do
begin
  idFTP1.Get(idFTP1.DirectoryListing[i].FileName, 'C:\Prueba\' + idFTP1.DirectoryListing[i].FileName );             
  ProgressBar2.Position:=ProgressBar2.Position+1;
  Sleep(500);
end;
except
  MessageDlg('No se completo la descarga de archivos.', mtWarning, [mbOK], 0);
end;

Otra cosita...como hago para que el archivo que estoy bajando reemplaze al ya existente? porque me da un error "Destination file already exists". Gracias desde ya.

cocute 23-01-2010 14:42:21

echale un vistazo a esto, yo he probado este ejemplo y me sobreescribe el fichero que bajo sin problema:
http://www.trucomania.org/trucomania...opic.php?t=270

no estoy seguro pero quizas te falta esto

IdFTP1.BeginWork(wmRead);
.......
IdFTP1.EndWork(wmRead);


para cuando subes archivos lo mismo pero con
IdFTP1.BeginWork(wmWrite);
......
IdFTP1.EndWork(wmWrite);


La franja horaria es GMT +2. Ahora son las 17:24:49.

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