Ver la Versión Completa : Coger ficheros desde ftp
Hola, yo tengo un ftp del cual deseo coger unos ficheros.
Qerria saber que componente utilizar para poder coger ese fichero y como debo hacerlo.
He conseguido conectar con un componente llamado TFtpClient
Muchas gracias de antemano.
Buenas.
Yo uso un objeto de Indy el TIdFTP y sin tener mucha idea fui capaz de usarlo con lo cual a mi parecer es bastante sencillo.:p
Puedes configurar la ruta, el puerto, usuario, login e incluso directorio inicial por propiedades publicas del objeto así que las puedes poner predefinidas en el código fuente o de algún fichero(un .ini) o pedir al usuario en ese momento...
El obejto devuelve una lista por valor(var lista) y también puedes coger un fichero de esa lista.
//obtener la lista de ficheros en FTP
FTP.List(lista,'',false);
//grabar un fichero concreto en una ruta concreta
FTP.Get([nombre fichero en FTP a granar],[fichero en local a grabar],true,false);
El resto de varibles booleanas hechales un ojo en la rutina Get,no tiene mucho misterio.
Espero haberte ayudado, un saludo.
si bastante, porque mi siguiente pregunta era como hacer una lista de los elementos de la carpeta, jejeje.
Ahora tengo otra pregunta, Como hago para que no aparezcan los permisos del fichero, bueno como obtengo solo el nombre del fichero.
Ese problema también lo tuve yo.
Yo creo que si pones
[DELPHI]
FTP.List(lista,'',false);
[/DEPLHI]
el false ese es para que no te liste los detalles.
Aún así yo gasto gasto esto:
En sysutils.pas hay una función "ExtractFileName" que te devuelve sólo el nombre del fichero pasando del resto de cosas que te devuelve ftp.list.
Eso es al menos lo que uso yo.
COmo utilizas el ExtractFileName sobre la lista??
Con un bucle.
for i := 2 to lista.count-1 do
lista[n] := ExtractFileName(lista[n]);
el lista[0] es '.' y el lista[1] son los '..'
El '.' indica directorio actual y '..' para ir al directorio anterior que se usan
para navegar lo que pasa es que a la hora de coger nombres de archivos nos traen sin cuidado.
Y al final lo que tu quires es
FTP.List(lista,'',false);
for i := 2 to lista.count-1 do
lista[n] := ExtractFileName(lista[n]);
Y ya tienes la lista de tus ficheros listos para mostrar al usuario limpios.
NOTA: tal cual esta lista no te valdrá para abrir ficheros ya que no tendrás la extensión. Usa otra lista auxiliar para mostrar. Una para enseñar y otra para manejar. Consejo gratis.
PD2: Evidentemente haz FTP.get sobre la que manejas.
Bien, ahora llega otra pregunta dificil, lo que quiero coger son archivos de PHP y kiero k me muestre el resultado en un memo o algo parecido, como deberia acerlo???
Tan sencillo como hacer
Memo.lines := lista;
Creo recordar que así funciona, sino
for i := 0 to lista.count-1
Memo.lines.add(lista[i]);
Donde lista es la lista de archivos ya bonitos para mostrar.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.