Wininet api FtpFindNextFile nur erste datei wird geöffnet

soeni1987

Mitglied
hallo, ich hab folgendes problem, ich lese per finnextfile einen ftp ordner aus. sowie klappt das, er listet mir auch alle dateinamen auf, leider kann er nur die erste datei öffnen und speichern, alle anderen kann er nicht öffnen, wie mach ich das? geht das irgendwie mit WaitForSingleObject(hRequestCompleted, INFINITE); wenn ja wie?

sanke für die hilfe

sönke

Code:
               WIN32_FIND_DATA wfd;      
               HINTERNET hFile = FtpFindFirstFile(hInetConnect, TEXT("*"), &wfd, 0, (DWORD_PTR)this);
   
               if (hFile == NULL)
               {
                     s.SetStatus("Fehler Dateien nicht geöffnet",hwnd);
                     return 0;
               }
               BOOL bResult = TRUE;
                while (bResult)
                {
                   if(strcmp(wfd.cFileName, "..")){
                       WaitForSingleObject(hInetConnect, INFINITE))
                       sprintf(szBuff, "Datei:  %s wird behandelt.", wfd.cFileName);                                   
                       status = szBuff;
                       s.SetStatus(const_cast<char*>(status.c_str()),hwnd);
                         
                       if(file =  FtpOpenFile(hInetConnect, // Handle to the ftp session 
                                              wfd.cFileName, // filename (aud find first file)
                                              GENERIC_READ, // dwAccess 
                                              FTP_TRANSFER_TYPE_BINARY, // dwFlags 
                                              0) // This is the context used for callbacks. 
                       ){
                        s.SetStatus("Datei geöffnet",hwnd);                       
                       // Read the response
                       if(InternetReadFile(file, 
                                           buff,
                                           4095,
                                           &dwBytesRead))
                       s.SetStatus("Datei gelesen",hwnd);   
   
                       pfad  = szUserPfad;
                       pfad += wfd.cFileName;
      
                       datei = fopen(pfad.c_str(),"w+"); 
                       if(datei==NULL) 
                          s.SetStatus("Fehler beim Schreiben",hwnd);  
                       else{

                       fprintf(datei,"%s", buff); 
                       fclose(datei);                                   
                       }}  
                       }
                bResult = InternetFindNextFile(hFile, &wfd);
                }
                InternetCloseHandle(hFile);
 

Neue Beiträge

Zurück