Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

descargar archivo de ftp

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: descargar archivo de ftp Responder citando

Hola:
Estoy haciendo una aplicación y necesito buscar en un ftp un archivo. Si lo encuentro lo descargo y lo borro del ftp pues ya no se necesita. Si no existe el archivo simplemente no se hace nada. El archivo puede ocupar unos 3 o 4 KB y debe reemplazar uno existente.
Después de hojear el foro me he decido por TIdFTP.
Aquí tenéis el código:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TFileStream *FStream;
AnsiString destino,Valor="cortina.ftp"; // archivo a buscar
destino="c:\\cortina.ini";  // archivo destino
FStream = new TFileStream(destino,fmCreate);
ftp->Connect();
if(ftp->Connected()){
   try{
      ftp->Get(Valor,FStream,false); // descargar archivo
      // borrar archivo
      //ftp->Delete(Valor); // desactivado por pruebas
      }
   catch(...){
      ShowMessage("archivo no encontrado");
      }
   }
ftp->Quit();

}

De momento me sale un error [BCC32 Error] ftp1.cpp(25): E2015 Ambiguity between 'fmCreate' and 'Classes::fmCreate'

ftp es el nombre de TIdFTP.
Alguna sugerencia?

Gracias

Saludos, Bosoft.
PD: estoy usando el codegear 2007, y los ejemplos brillan por su ausencia. Con componentes Indy no he trabajado nunca y estoy muy verde
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Cambia el Valor que tienes de la Línea
Código:
{...}
FStream = new TFileStream(destino,fmCreate);
{...}

por este otro
Código:
{...}
FStream = new TFileStream(destino,Classes::fmCreate);
{...}


Generalmente es la misma macro.

Saludos
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

bosoft escribió:
De momento me sale un error [BCC32 Error] ftp1.cpp(25): E2015 Ambiguity between 'fmCreate' and 'Classes::fmCreate'

Esto ocurre porque encuentra que 'fmCreate' existe tanto en 'Classes.hpp' y 'IdObjs', el que nos interesa es el que está en 'Classes.hpp' que es el que pertenece a 'TFileStream', basta con poner en el lugar de 'fmCreate': Classes::fmCreate, o sea:
Código:
FStream = new TFileStream(destino, Classes::fmCreate);

Con esto ya funcionaria, aunque tienes otra forma más sencilla de usar el 'Get':
Código:
// Quitamos todas las líneas que use 'FStream' y cambiamos la línea del 'Get' por:
ftp->Get(Valor, destino, true); // descargar archivo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Muchas gracias a los dos, funciona perfecto.

Saludos, Bosoft.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola gente del foro.. tengo en mi aplicacion un ftp para traer archivos de un servidor... anda perfecto salvo por una cosita...
si la ruta de destino esta en el disco "c:\\" o en la direccion donde esta instalada la aplicacion "c::\\archivos de programas.... " me tira error que el archivo no se puede crear (pero si lo crea solo q lo deja vacio)

si el archivo lo guardo por ejemplo en el disco D: anda perfecto...
como le doy los permisos para que no tire el error? el codigo es el mismo que esta planteado arriba con sus respectivas correcciones dadas por ustedes..

Una de las pc tiene windows vista(x86) y la otra windows 7 (X64)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.