Getfileftp : permet de récupérer un fichier sur un serveur ftp

Contenu du snippet

Voici la fonction principale (FTP)
Sinon voir le code

Source / Exemple :


//
// Source du programme d'envoi de fichier pas protocol FTP	

// Parametres :									
// 1. HWND du programme principal					
// 2. Repertoire to Send
					
// Retour :										
// Créateur : Trinita								
// Copyright : Freeware							
// Date Création : 26/06/2003				
// Date de Modification : 26/06/2003				
// Version : 1.0.0					
//						

#include <string.h>
#include <stdio.h>
#include <Wininet.h>
#include <windows.h>

#include "main.h"
#include "logfile.h"
#include "ressource.h"
	
void SendFileFtp ( HWND hDlgSend, char DirFile[MAIN_LEN+1], char DirRep[MAIN_LEN+1] )
{
// Déclaration des variables
// init des variables
char *Buffer = (char *) calloc(sizeof (char), MAIN_LEN+1);
char DirNameFileIni[MAIN_LEN+1]="";				
char NameServeurFtp[MAIN_LEN+1]="";
char LoginFtp[MAIN_LEN+1]="";
char PwdFtp[MAIN_LEN+1]="";
bool ResultFtp;
char DirToRecupFile[MAIN_LEN+1]="";

// Les handles
// handle to internet connection
HINTERNET hInternetSession; 				
// handle to FTP session
HINTERNET hFTPSession; 						
	
// Chemin complet du fichier de destination
strcpy (DirToRecupFile,DirRep);
strcat (DirToRecupFile,"\\");
strcat (DirToRecupFile,DirFile);
	
// Récupération du chemin du fichier ini
GetFullPathName( NameFileIni, MAIN_LEN+1, Buffer, NULL);
strcpy ( DirNameFileIni,Buffer );
	
// Récupération des params
GetPrivateProfileString ( "FTP" , "NAME_SERVEUR_FTP" , "" , NameServeurFtp , MAIN_LEN+1 , DirNameFileIni );
GetPrivateProfileString ( "FTP" , "LOGIN_FTP" , "" , LoginFtp , MAIN_LEN+1 , DirNameFileIni );
GetPrivateProfileString ( "FTP" , "PWD_FTP" , "" , PwdFtp , MAIN_LEN+1 , DirNameFileIni );
	
// Ouverture de la connexion
hInternetSession = InternetOpen ( NameApp , INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if ( hInternetSession == NULL )
{
// Erreur dans l'ouverture de la connexion
WriteInLogFile ( "Erreur dans l'ouverture de la connexion <InternetOpen>" );
exit;
}

// Connexion au serveur FTP
hFTPSession = InternetConnect ( hInternetSession, NameServeurFtp, INTERNET_DEFAULT_FTP_PORT, LoginFtp, PwdFtp, INTERNET_SERVICE_FTP, 0, 0);
if ( !hFTPSession )
{
WriteInLogFile ( "Erreur dans l'ouverture de la connexion ftp <InternetConnect>" );
exit;
}
else
{
// Réception du fichier FTP
ResultFtp = FtpGetFile ( hFTPSession, DirFile, DirToRecupFile, NULL, NULL,FTP_TRANSFER_TYPE_ASCII, NULL);
if ( ResultFtp )
{
MessageBox( hDlgSend ,"Opération terminée avec succès !!!!","Information",MB_OK|MB_ICONINFORMATION);
}
else
{
MessageBox( hDlgSend ,"Erreur dans la réception du fichier, consultez le fichier de trace !!!!","Erreur",MB_OK|MB_ICONWARNING);
}

// Fermeture de la connexion ftp
InternetCloseHandle ( hFTPSession );
}
// Fermeture de la session
InternetCloseHandle ( hInternetSession );
	
return;
}

Conclusion :


Attention il faut la librairie wininet.lib

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.