begin process at 2012 05 29 09:55:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

InternetReadFile et FtpGetFile


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

InternetReadFile et FtpGetFile

lundi 19 septembre 2005 à 13:14:37 | InternetReadFile et FtpGetFile

melkiorlenecrarque

Membre Club
Bonjour,

voici le probleme :

Mon prog doit scanner l'arborescence d'un FTP local( ça c'est OK !) et telecharger tous les mp3, afin de lire leur tag et de creer une liste.

La fonction InternetReadFile marche tres bien losque je lis une petite parti du fichier, genre 1028 octets, mais lorsque je lis le fichier entierement ( taille retournée par FtpGetFileSize), la fonction se bloque.
Idem si je telecharge le fichier avec FtpGetFile, sa plante soit aprés avoir lu 3 mp3, ou 10, ou 20, c'est aléatoire.

voici le code:
//Chemin est un char* Chemin;
DWORD reste = 0;
HINTERNET file = FtpOpenFile(ftp, Chemin, GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, NULL);
DWORD size = FtpGetFileSize(file, NULL);
char* buf = new char[size];
BOOL err = InternetReadFile(file, buf, size, &reste);
delete buf;
 InternetCloseHandle(file);

Des idées?
merci

jeudi 29 septembre 2005 à 21:57:48 | Re : InternetReadFile et FtpGetFile

elguevel

Si tu passe par le protocol FTP pour telecharger tes fichiers utilise FtpGetFile, c'est mille fois plus simple,  pas besoin de preciser la taille du buffer, et c'est plus approprié a mon avis pour du FTP que InternetReadFile.

Tient une ptite fonction pour telecharger tes fichiers :

void DownLoadFile( char *FichierSurFTP, char *FichierACreer )
{
    FtpGetFile( PConnexionFTP, FichierSurFTP, FichierACreer, FALSE, 0, FTP_TRANSFER_TYPE_BINARY, 0 );
}



Sinon pour info je me connecte via cette fonction :

/* Connexion au serveur FTP */
boolean ConnexionFTP( char *Serveur, char *Login, char *MotDePasse, DWORD Port )
{
  PConnexionInternet = InternetOpen( "ELGUEVEL_FTP", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 );

 if ( PConnexionInternet == NULL )
 {
   return FALSE;
   ExitProcess(1);
 }
 
 PConnexionFTP = InternetConnect( PConnexionInternet, Serveur, Port, Login, MotDePasse, INTERNET_SERVICE_FTP, 0, 0 );

 if ( PConnexionFTP == NULL )
 {
    InternetCloseHandle( PConnexionInternet );
    return FALSE;
    ExitProcess(1);
 }

 return TRUE;

}

Et je me deconnecte comme ceci :

/* Detruit les pointeurs de connection */
void Deconnexion()
{
 InternetCloseHandle( PConnexionInternet );
 InternetCloseHandle( PConnexionFTP );
}


Si avec çà, çà marche pas

Damien.

vendredi 30 septembre 2005 à 12:54:57 | Re : InternetReadFile et FtpGetFile

melkiorlenecrarque

Membre Club
Merci pour cette réponse,

Depuis que j'ai posté cette question je me suis rendu compte que c'était mon parefeu qui faisait planter ma fonction FtpGetFile et meme InternetReadFile.

Pour information, mon parefeu était Kerio. Marche nickel mantenant sous Zone Alarme.

Melkior le Necrarque.
vendredi 30 septembre 2005 à 14:38:25 | Re : InternetReadFile et FtpGetFile

elguevel

Ok,

Mais c'est quand meme bizzard que ton firewall applicatif laisse passer un coup une partie de tes fichiers par ce protocole et un coup pas.

Sinon ZoneAlarm j'aime pas trop ... à l'époque j'utilisait surtout SysGates, je le trouve nettement plus performant et il est gratuit.

A l'heure actuel j'ai un routeur avec un PareFeu (materiel donc)  je te le conseil, surtout que c'est plus trop chere, et en complément j'ai BitDefendeur qui fait AntiVirus, et FireWall.

Aller Bon Code !

Damien.


Cette discussion est classée dans : fichier, ftp, file, ftpgetfile, internetreadfile


Répondre à ce message

Sujets en rapport avec ce message

Problème avec traitement de fichier (cplusplus !) [ par Sianrin ] Voila, j'explique mon problème. Pour voir un peu comment les accès au fichiers se géraient en cplusplus, je me suis mis en tête de faire un programme Comment envoyer ou recevoir un fichier d'une adresse ftp ? [ par JMGR ] Tout est dit dans le titre :)ex : bouton "S'incrire" qui envoit le fichier res.txt vers ftp.truc.fr/jmgr/res.txt Enregistrer en HEXA un texte avec gcc !! [ par UncleShu ] /* * Ce programme affiche le fichier en HEXADECIMAL et se copie lui-même avec * une autre exetenstion (.txt). Moi je voudrais qui affiche le fichier * Transfert d'un ftp (2) [ par header ] Voila le problème :J'ai ouvert un fichier sur un ftp et je me prépare à lire quelques bytes de celui ci. Pourquoi ca marche trés bien avec un fichier Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM ouverture de fichier avec les MFC [ par steph76 ] Bonjourvoila je programme une application qui ha beusoin d'ouvrir 1 fichier via httpJ'ai donc fait le code suivantCStdioFile *file;CInternetSession IS Transfer de fichier par FTP ou URL [ par tsc ] Bîjour tout le monde,je voulais savoir si qqun connaissait un moyen de faire un programme qui téléchargerai un fichier (défini) depuis un FTP ou un U ftp linux [ par totoLeTigre ] bon arreter moi si je me trompe mais il y à bcp de code windows icij'aimerais bien d'une part trouver le meme site que celui-ci mais que les codes sou Pb de gestion de fichier avec fstream [ par Bub325 ] Salut,J'ai deux problème distinct avec fstream, Le premier est que lorsque j'arrive à la fin d'un fichier, je ne peut plus revenir plus haut dans ce d Mettre un fichier .exe dans un buffer [ par guiguikun ] Je n'arrive pas a mettre un fichier executable en memoire.sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)voici m


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales