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 15-12-2004
ciscu ciscu is offline
Miembro
 
Registrado: jun 2003
Ubicación: Granollers
Posts: 114
Poder: 21
ciscu Va por buen camino
Unhappy Lista de TODOS los directorios y archivos de un sitio FTP

Hola, qué tal?

Me gustaría poner en un listado (TListBox) todos los archivos y carpetas que tengo en una FTP, utilizando las funciones FTPFindFirstFile y InternetFindNextFile, algo parecido con las funciones FindFirst y FindNext.

Podéis agregarme un poco de código para tener alguna idea del funcionamiento de las anteriores funciones?

Gracias anticipadas.
Responder Con Cita
  #2  
Antiguo 16-12-2004
ciscu ciscu is offline
Miembro
 
Registrado: jun 2003
Ubicación: Granollers
Posts: 114
Poder: 21
ciscu Va por buen camino
Unhappy

Hola, si tenéis alguna idea me gustaría que me respondiérais, por favor, es que tengo un poco de prisa...

Gracias anticipadas y perdonad mi osadía...
Responder Con Cita
  #3  
Antiguo 16-12-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
En el foro creo que hay algo para buscar ficheros recursivamente (a ver si te lo encuentro)... a lo mejor podrías adaptarlo para ftp.
__________________
:)
Responder Con Cita
  #4  
Antiguo 17-12-2004
ciscu ciscu is offline
Miembro
 
Registrado: jun 2003
Ubicación: Granollers
Posts: 114
Poder: 21
ciscu Va por buen camino
Wink Ya encontré la solución a la lista FTP

Bueno, hermanos del delphi, hallé un modo para listar todo el sitio FTP, con todos los archivos y carpetas, de modo recursivo; para quien le interese, aquí os escribo el código, para asi compensar un poco todas las veces que me habeis ayudado:

Código:
uses WinInet;

procedure TForm1.Button1Click(Sender: TObject);//para crear listado en un Tlistbox
var Carpeta:string;
begin
   listbox1.items.clear;

   Carpeta:='/';

   Busca(Carpeta);
end;



procedure TForm1.Busca(Carpeta:string);
var FindData: TWin32FindData;
  CondicionBusqueda, FTPConexion, InternetConexion: HInternet;
begin
  InternetConexion:=InternetOpen('iexplorer', // programa que se conecta a internet
                        INTERNET_OPEN_TYPE_PRECONFIG, // tipo de acceso a internet
                        nil,  // nombre del proxy
                        nil, //ni idea (¡CON PERDON!)
                        0);

  IF InternetConexion=nil then showmessage('No se reconoce el servidor');
  FTPConexion := InternetConnect(InternetConexion,PChar('ftp.servidor.com'), //servidor FTP
INTERNET_DEFAULT_FTP_PORT, // (INTERNET_DEFAULT_FTP_PORT),PChar(edit1.text), // nombre del usuario, normalmente anónimo
PChar(edit2.text),  // contraseña
INTERNET_SERVICE_FTP, // FTP ó HTTP
0, //  0 ó INTERNET_FLAG_PASSIVE
0);// (ni p... idea perdón otra vez!)

  
  CondicionBusqueda := FtpFindFirstFile(FTPConexion pchar(inclourebarres(Carpeta+'*.*')),FindData, 0, 0);

  if CondicionBusqueda = nil then begin
    showmessage('No hi ha arxius que compleixin la condició');
    Exit;
  end;

  repeat
    if (FindData.dwFileAttributes=FILE_ATTRIBUTE_DIRECTORY)and(FindData.cFileName[0]<>'.')and(FindData.cFileName[1]<>'.') then
      Busca(Carpeta+inclourebarres(finddata.cFileName))
    else
    begin
      if(FindData.cFileName[0]='.')and(FindData.cFileName[1]='.')then
        listbox1.items.add(Carpeta)
      else
        listbox1.items.add(FindData.cFIlename);
    end;
  until not InternetFindnextFile(CondicionBusqueda, @FindData);
  
  InternetCloseHandle(CondicionBusqueda);
end;


function TForm1.PathDelimitador(const S: string; Index: Integer): Boolean;
begin
  Result := (Index > 0) and (Index <= Length(S)) and (S[Index] = '/')
    and (ByteType(S, Index) = mbSingleByte);
end;


function TForm1.IncloureBarres(const S: string): string;
begin
  Result := S;
  if not PathDelimitador(Result, Length(Result)) then Result := Result + '/';
end;

Espero que a alguien le sirva!

Saludos y feliz Navidad a todos!!!
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


La franja horaria es GMT +2. Ahora son las 23:27:21.


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