Liste de ossiers ftp Wininet

Résolu
Roulio52 Messages postés 10 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 28 août 2007 - 20 avril 2007 à 16:04
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011 - 21 avril 2007 à 19:49
Salut à tous !
Ca fait plus de 3 jours que je cherche à faire une fonction en c++ avec wininet qui me permettrai de mettre dans un tableau la liste des dossiers d'un dossier donné.
Je cherche déserpérement sur le site ou dans wininet.h mais je n'arrive que à transférer des fichiers ou à les télécharger.

Ex :   \lol   \1
                \2
                \3
                \4

En fait je voudrais récupérer dans un tableau [1], [2], [3], [4].
Et j'ai beaucoup de mal à faire ça ... .

Quelqu'un pourrait m'aider ou m'éclairer, je débute en c++.
Je suis en Borland builder 5 si faut le préciser.

Merci d'avance à vous tous,

4 réponses

cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011
20 avril 2007 à 19:44
// FTP_ListDir.c



#include <wininet.h>  //Linker wininet.lib ou libwininet.a
#include <stdio.h>



#define SERV  "tonserveurftp"
#define USER  "tonlogin"
#define PASS  "tonmotdepasse"
#define LDIR  "/"



int main(void)
{
  HINTERNET hNet, hCnx, hFtp;
  WIN32_FIND_DATA wfdFile;
  int c = 0;



  hNet = InternetOpen("FTP_ListDir",
                       INTERNET_OPEN_TYPE_DIRECT,
                       NULL,
                       NULL,
                       0);
  if(!hNet){
    printf("Erreur InternetOpen() !\n");
    return 1;
  }
  hCnx = InternetConnect(hNet,
                         SERV,
                         INTERNET_DEFAULT_FTP_PORT,
                         USER,
                         PASS,
                         INTERNET_SERVICE_FTP,
                         0,
                         0);
  if(!hCnx){
    printf("Erreur InternetConnect() !\n");
    InternetCloseHandle(hNet);
    return 1; 
  }
  printf("\nListe des dossiers de %s\n\n", LDIR);
 
  hFtp = FtpFindFirstFile(hCnx, LDIR, &wfdFile, 0, 0);
  if(!hFtp){
    printf("Erreur FtpFindFirstFile() !\n");
    InternetCloseHandle(hCnx);
    InternetCloseHandle(hNet);
    return 1; 
  } 
  do{ 
    if(wfdFile.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY){
      printf("\t%s\n", wfdFile.cFileName);
      c++;   
    } 
  }
  while(InternetFindNextFile(hFtp, &wfdFile)); 
 
  printf("\n%d Dossier(s)\n", c);
  InternetCloseHandle(hCnx);
  InternetCloseHandle(hNet);
  return 0;
}
3
cs_vicenzo Messages postés 178 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 25 août 2010 1
20 avril 2007 à 18:49
En 1 clic sur google, je tombe sur un aticle de vbfrance..

Y a une fonction EnumFiles... Y a transcoder de VB en c++..

http://www.vbfrance.com/codes/FTP-DOWNLOAD-UPLOAD-SUPPRIMME-RENOMME-DOSSIER-V2_17386.aspx
0
Roulio52 Messages postés 10 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 28 août 2007
21 avril 2007 à 19:31
Ouah merci beaucoup j'en attendait pas tant !!! Ca fonctionne impéccable ...
bah encore merci beaucoup ! je posterai ma source une fois le projet fini !
0
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011
21 avril 2007 à 19:49
Ajoute InternetCloseHandle(hFtp); en fin de programme...
0
Rejoignez-nous