Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-10-2005
developerManu developerManu is offline
Registrado
 
Registrado: oct 2005
Posts: 5
Poder: 0
developerManu Va por buen camino
Comprobar si existe un directorio en una conexión FTP

Buenos días,

El programa que estoy haciendo se conecta a un ftp mediante un TidFTP.
Una vez establecida la conexión necesitaría saber i/o comprobar si existe un directorio, y sino es el caso crearlo.

La forma de crearlo ya la tengo se hace con:
IdFTP1.MakeDir(URL_DESTINO);

Para posteriormente subir ficheros con:
IdFTP1.Put(Ori, Dest);

Pero como digo anteriormente, como puedo comprobar si existe el directorio?

PD: He intentado buscarlo por el foro, pero no hay mucho temas de FTP, o por lo menos no lo he encontrado, ya que la palabra FTP no te la deja poner en el sistema de búsqueda por ser inferior a 4 carácteres.

Un saludo,
Felicitaciones por el foro, me es de gran ayuda.
Responder Con Cita
  #2  
Antiguo 24-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No tengo experiencia usando el componente, pero, he podido ahora comprobar que puedes obtener una lista de los directorios y archivos en una variable de tipo "TStrings". Como no he visto ningún comando FTP que permita comprobar si un directorio existe (puede que simplemente no halla podido yo dar con el mismo, que conste) podrías, simplemente, obtener la lista de directorios y archivos, y luego comprobar si en esta lista se encuentra el directorio que pretendes crear, en caso de no existir. Podría ser una solución, ¿no te parece?


Cita:
Empezado por developerManu
PD: He intentado buscarlo por el foro, pero no hay mucho temas de FTP, o por lo menos no lo he encontrado, ya que la palabra FTP no te la deja poner en el sistema de búsqueda por ser inferior a 4 carácteres.
Puedes tratar de realizar la búsqueda mediante estos términos, por ejemplo: "comandos FTP*", sin las comillas, pero con el asterisco luego del término que cuenta con menos de cuatro caracteres. De ese modo tal vez encuentres información al respecto.

En todo caso sé bienvenido al ClubDelphi. Por favor, revisa la guía de estilo de estos foros, pues, seguramente te será útil.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 24-10-2005
developerManu developerManu is offline
Registrado
 
Registrado: oct 2005
Posts: 5
Poder: 0
developerManu Va por buen camino
Merci, por la aclaración a la hora de buscar por el foro.

Sobre lo del FTP, mas o menos he pensado lo mismo que tu, al no ver el método que lo hiciera estaba intentando hacerlo como tu bien dices.

No obstante, si alguien sabe como hacerlo directamente, que no dude en exponerlo en el foro.

Un saludo,
Y muchas gracias por todo.
Responder Con Cita
  #4  
Antiguo 24-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

He estado mirando en algún que otro sitio y no consigo dar con un comando FTP que nos ayude en el asunto que nos ocupa. Lo que se me ocurre ahora lo siguiente: enviar un comando FTP con el fin de cambiarnos a un determinado directorio, el cual, de no existir, generará un mensaje de error. Es decir, hacer algo como lo siguiente, una vez conectados al servidor FTP:

Código Delphi [-]
 idFtp.SendCmd('CWD directorio');
Luego de la anterior instrucción podríamos consultar la propiedad "LastCmdResult" del "TIdFTP", la cual nos ofrece desde el código de respuesta del servidor ("550" en caso de que no exista el directorio) hasta el texto del mismo, que sería: "[nombre del directorio]: No such file or directory". No sé si te servirá de algo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 24-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola de nuevo,

Se me ocurre que, siguiendo lo dicho en mi anterior mensaje, podría ser más fácil "preguntar" si el comando "CWD" tuvo éxito que lo contrario. Esto es, creo que podría hacerse algo así para averiguar si un directorio existe:

Código Delphi [-]
   if idFtp.SendCmd('CWD xeditor', -1) <> -1 then
   begin
     if (idFtp.LastCmdResult.TextCode = '250') then
       ShowMessage('El directorio existe')
     else
       ShowMessage('El directorio no existe');
   end;
Hay que tener en cuenta, en caso de que el directorio exista, que el comando "CDW" nos habrá movido al mismo, lo cual, si no interesara, podría "contrarestarse" del siguiente modo:

Código Delphi [-]
   if idFtp.SendCmd('CWD xeditor', -1) <> -1 then
   begin
     if (idFtp.LastCmdResult.TextCode = '250') then
     begin
       idFtp.SendCmd('CWD ..');
       ShowMessage('El directorio existe');
     end
     else
       ShowMessage('El directorio no existe');
   end;
De todos modos tendrás que hacer tus pruebas. Creo que no todos los servidores FTP admiten todos los comandos disponibles, dependerá de alguna que otra circunstancia (no estoy muy puesto en estos temas). Supongo que habrás realizado alguna que otra búsqueda en tu buscador favorito: en esta de Google encuentras no pocas referencias sobre los comandos FTP disponibles.
__________________
David Esperalta
www.decsoftutils.com
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 16:23: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