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
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);