|
From: bmshirey on 1 Jul 2008 15:08 I'm trying to do a file enumeration on an ftp server using wininet library functions. My code is: //------------------------------------------------------------------------------------------------------------ hINET = InternetOpen( TEXT("An Ftp program"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_ASYNC ); if (hINET == NULL) { Label1->Caption = "Connect error 1"; return; } AnsiString sFTPIp = // my ip removed for example AnsiString sFTPUsername = // AnsiString sFTPPassword = // hFTP = InternetConnect( hINET, sFTPIp.c_str(), INTERNET_DEFAULT_FTP_PORT, sFTPUsername.c_str(), sFTPPassword.c_str(), INTERNET_SERVICE_FTP, 0, 0 ); if(hFTP == NULL) { Label1->Caption = "Connect error 2"; InternetCloseHandle(hINET); hINET = NULL; return; } Label1->Caption = "Connected to ftp server"; WIN32_FIND_DATA results; AnsiString sSearchDir = (AnsiString)"\\*.*"; HINTERNET hFind = FtpFindFirstFile(hFTP,sSearchDir.c_str(),&results, 0,0); if(hFind == NULL) { ListBox1->Items->Add("No files found"); return; } ListBox1->Items->Add(AnsiString(results.cFileName)); bool ret = true; while(ret ) { ret = InternetFindNextFile(hFind,&results); if(!ret) { DWORD err = GetLastError(); ListBox1->Items->Add("Error: " + AnsiString(err)); } else ListBox1->Items->Add(AnsiString(results.cFileName)); } InternetCloseHandle(hFind); //------------------------------------------------------------------------------------------------------------ The connect works fine, the FtpFindFirstFile finds the first file succesfully but InernetFindNextFile always fails and GetLastError is 2455: NERR_NetlogonNotStarted - The Netlogon service has not been started. Does anyone know what this error means and where I went wrong? Thanks in advance.
From: bmshirey on 1 Jul 2008 15:26 Looks like I found my own solution- needed to use WININET_API_FLAG_SYNC flag in the InternetOpen call. Anyone know exactly what these flags mean? Works like a charm now.
|
Pages: 1 Prev: changing TS session in thread Next: A problem with a small error |