| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Dom 10 Feb, 2008 7:57 pm Asunto: descargar archivo de ftp |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Dom 10 Feb, 2008 8:47 pm Asunto: |
|
|
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 _________________
 |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Dom 10 Feb, 2008 8:47 pm Asunto: |
|
|
| 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 |
|
 |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Dom 10 Feb, 2008 11:55 pm Asunto: |
|
|
Muchas gracias a los dos, funciona perfecto.
Saludos, Bosoft. |
|
| Volver arriba |
|
 |
Schweiko Lt JG

Registrado: 05 Jun 2008Mensajes: 65Ubicación: Argentina - Misiones
|
Publicado: Jue 11 Mar, 2010 3:19 am Asunto: |
|
|
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 |
|
 |
|