Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Descarga FTP

Hola a todos

Tengo un FTP cualquiera,deceo saber si es posible descargar de un ruta especifica el archivo que se encuentre ahi. El nombre de ese archivo va estar cambiando entonces mi intencion es descargar ese archivo y despues borrarlo osea que siembre existira uno nada mas en esa carpeta.

En concreto
¿Puedo descargar un archivo de una rata especifica pero no se el nombre solamente se la extension?

Saludos...
Responder Con Cita
  #2  
Antiguo 10-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola nuevamente Luis Alberto,

puedes usar el componente IdFTP. Tiene una propiedad llamada list a la que le puedes pasar por parámetro una máscara con la extensión que tu quieras para que te filtre los ficheros de dentro del directorio.
Un ejemplo será más claro.

Código Delphi [-]
function FTP;
Var StringList : tStringList;
    r : Integer;
begin
     IdFTP1.host := Host;
     IdFTP1.User := User;
     IdFTP1.Password := Password;
     try
        IdFTP1.connect;
        IdFTP1.changedir(dir);
     except
     end;

     IdFTP1.List(StringList, '*.txt', False);
     for r := 0 to StringList.count-1 do begin
          lista.Items.add(StringList[r]);
     end;
      IdFTP1.disconnect;
      StringList.Free;
end;

Espero te sirva de ayuda

Saludos
Responder Con Cita
  #3  
Antiguo 10-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Los filtro pero despues los descargo normal o como, ademas manejo el FTP con WinInet..
Responder Con Cita
  #4  
Antiguo 11-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
A que te refieres con descarga normal o como?
Cuando hemos filtrado los ficheros por su extensión, hemos insertado los nombres de los ficheros obtenidos dentro de una lista.
Lo único que queda hacer ahora es recorrer esa lista y para cada nombre que haya en ella hacer un Get para descargar el fichero
algo así como
Código Delphi [-]
IdFTP1.get(ArchivoDeLaLista,RutaDestinoDondeLoQuieresGuardar,True);

No conozco el componente Wininet o ahora mismo no recuerdo haberlo usado, de todos modos funcionan igual prácticamente todos los componentes de FTP.

Saludos
Responder Con Cita
  #5  
Antiguo 11-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Gracias a todos su ayuda me sirvio mucho gracias...
Responder Con Cita
  #6  
Antiguo 12-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Me surgio una duda para hacer lo contrario en vez de bajar todo lo que este en la carpeta que debo de hacer para subir todo lo que este en una carpeta local al ftp y la ruta que tengo?
Responder Con Cita
  #7  
Antiguo 12-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Pues en lugar de usar la función Get usas la función Put

Dale un vistazo a la ayuda de Delphi referente al Put y a Get.

Saludos
Responder Con Cita
  #8  
Antiguo 14-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Me podrias explicar por que no sale, gracias de antemano
Responder Con Cita
  #9  
Antiguo 14-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Que es lo que no te sale?? Explicate la ayuda de Delphi y la función Put, danos más información para que podamos ayudarte.
De todos modos si has seguio las instrucciones para hacer el Get como te indiqué no tendrías que tener ningún problema, sólo substituirlo por el Put.

Saludos
Responder Con Cita
  #10  
Antiguo 16-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Mira realmente mi pregunta es yo tengo los archivo en mi maquina local una carteoa llamada TXT que se encuentra en C:\TXT\dentro de ella aqui estan los archivos que quiero que automaticamente se tomen cada hora si hay archivos que los tome todos los que haya. el detalle es que el archivo tienen difierente nombre pero si son TXT todos quiero ver como realizar esto espero me puedan ayudar...

Saludos...
Responder Con Cita
  #11  
Antiguo 16-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Puedes usar componentes del tipo TreeView, FileListBox de la paleta de Win 3.1, ShellTreeView de la paleta Samples, etc. Para poder listar los ficheros de un directorio.

Te doy un ejemplo con el FileListBox:
Código Delphi [-]
    FileListBox1.Mask := '*.TEXT'; //máscara para filtrar por extension txt
    FileListBox1.Directory := 'c:\TXT\'; //directorio donde buscar los ficheros
    FileListBox1.Update; //actualiza el contenido del objeto

Ya sólo te queda recorrer el FileListBox accediendo a sus items
Código Delphi [-]
FileListBox1.Items.Strings[x]
y para cada fichero encontrado lo subes con la función Put que te enseñé más arriba.

Saludos
Responder Con Cita
  #12  
Antiguo 16-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Quiero saber si puedes ayudarme cuando creo el archivo de TXT quiero colocarlo en dos carpetas una de archivos generados y otra que se llame archivos de salida asi cuando tome los archivos de salida y los suba al FTP los pueda borrar.

Saludos...
Responder Con Cita
  #13  
Antiguo 16-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Que tal si una vez generado el fichero haces un Copyfile con ese fichero desde la carpeta de archivos generados a la de archivos de salida?

Código Delphi [-]
      CopyFile(PChar('c:\TXT\FicherosGenerados\Fichero1.txt'), PChar('c:\TXT\FicherosDeSalida\Fichero1.txt'), False);
Responder Con Cita
  #14  
Antiguo 16-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
gracias me a servido bastante, no encuentro como borrar los archivo que ya se hayan subido al FTP.
Responder Con Cita
  #15  
Antiguo 16-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
ademas cuando se conecta el ftp es todo normal pero como va ser automatico quiero saber como decirle que si no se conecto en sierto tiempo que se desconecta y que despues lo vuelva a realizar tu sabes como puedo realizar eso.

Saludos
Responder Con Cita
  #16  
Antiguo 17-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Referente al tema del borrado del fichero, prueba ha hacer lo siguiente:
- Si has conseguido descargarte el fichero, luego haces un Delete;
Código Delphi [-]
IdFTP.Delete(AFilename);
Pero ten cuidado ponlo en un try except porque es posible que te de error sino tienes permisos de borrado en el servidor de FTP.

Referente al segundo tema, no te recomiendo que tengas el FTP abierto todo el tiempo. Tú te creas un proceso para descargar ficheros FTP, y otro para subirlos no?, en esos procedimientos, realizas lo que te comenté en mi primera respuesta:
- Conexión
- Descarga/Subida de ficheros //ya que los dos procedimientos serán igual, uno sube y el otro baja ficheros
- Desconexión

Luego puedes tener un timer activado para que cada cierto tiempo, p.ej cada 30 minutos realice una comprobación:
- Si hay ficheros en c:\TXT\ficherosparasubir\ entonces llamas al procedimiento FTP de Subida
- Tantao si habia fichero para subir como sino, llamas a la función de descarga de ficheros

Saludos
Responder Con Cita
  #17  
Antiguo 17-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
El proceso es correcto lo tengo que se conecte cada 1 hora al FTP pero ahora si inteta conectarse y falla por x razon quiero que intente conectarse otra vez asi como unas 3 veces de no ser asi que se desconecte.

si me explique
Responder Con Cita
  #18  
Antiguo 17-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Puedes crearte una variable local a las funciones de carga y descarga de ficheros, de tipo entero.

Luego un bucle que recorra el valor de la variable, desde 1 hasta 3, allí dentro validas si se ha conectado, o sino ha habido error, y en ese caso sales del bucle, en caso contrario continuas hasta 3 veces.
Si al final, continuas desconectado o el valor de la variable es 3 significará que has realizado los 3 intentos y aún así no has conseguido conectarte, sales del procedimiento y ya volverá a ejecutarse el timer dentro de una hora.
Responder Con Cita
  #19  
Antiguo 17-01-2006
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Todo salio perfecto para poder subir archivos al FTP
pero cuando trato de bajar archivos download me marca error cuando le digo que: IdFTP1.List(StringList, '*.fff', False);

que puede ser que estoy haciendo mal?
Responder Con Cita
  #20  
Antiguo 18-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
No estaría de más que nos copiaras el texto del error que te marca.
Ya que sin eso poco podemos hacer para ayudarte

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Mostrar progreso de descarga de IndyFTP con barra de progreso devicer Internet 2 05-12-2005 15:59:32
"Libros gratuitos para descarga, y dentro de poco más" dec Linux 7 04-08-2005 18:02:06
Calcular el tamaño de la descarga con IdHTTP sitrico Internet 0 24-01-2005 21:53:20
Descarga archivo cliente/servidor edgusano Internet 11 20-09-2004 18:01:44


La franja horaria es GMT +2. Ahora son las 09:30: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