Hallo,
ich habe folgendes Problem. Bei FtpFindNextFile wird die Datei nicht geöffnet. Der Fehlercode ist 12110. Leider werd ich daraus nicht schlau. Ich verwende die WininetApi
Mein Code sieht wiefolgt aus:
Der Dateiname wird richtig ausgelesen nur kann die date nicht geöffnet werden, wie gesagt.
Danke für die Hilfe im Vorraus und noch schöne Restweihnachtsfeiertage
Sönke
ich habe folgendes Problem. Bei FtpFindNextFile wird die Datei nicht geöffnet. Der Fehlercode ist 12110. Leider werd ich daraus nicht schlau. Ich verwende die WininetApi
Mein Code sieht wiefolgt aus:
Code:
bool ::sync::ReadAll(HWND hwnd){
status s;
init in;
s.iArt=1;
s.SetStatus("Verbinden mit...",hwnd);
///////////////////////////////////////////////////////////////////////////////////////////////
HINTERNET hInetOpen, hInetConnect;
FILE* datei;
char szUserPfad[255], szMemberPfad[255], szNotesPfad[255], directory_ftp[]="intern/users", szBuff[255];
std::string pfad, status, statuss;
HINTERNET file, notes;
char buff[4096] = "";
DWORD dwBytesRead;
GetPrivateProfileString(szBenutzer,"ftp","NULL",host,255,in.Pfad());
GetPrivateProfileString(szBenutzer,"benutzer","NULL",user,255,in.Pfad());
GetPrivateProfileString(szBenutzer,"passw","NULL",pass,255,in.Pfad());
GetPrivateProfileString(szBenutzer,"users","NULL",szUserPfad,255,in.Pfad());
GetPrivateProfileString(szBenutzer,"notes","NULL",szNotesPfad,255,in.Pfad());
GetPrivateProfileString(szBenutzer,"member","NULL",szMemberPfad,255,in.Pfad());
hInetOpen = InternetOpen("FTP",INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
hInetConnect = InternetConnect(hInetOpen, host, INTERNET_DEFAULT_FTP_PORT,
user, pass, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
if((hInetOpen || hInetConnect) == 0){
s.SetStatus("Keine Verbindung",hwnd);
}else{
s.SetStatus(host,hwnd);
if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
status = "In Ordner ";
status += directory_ftp;
status += " gewechselt";
s.SetStatus(const_cast<char*>(status.c_str()),hwnd);
}
///Hier User updaten
WIN32_FIND_DATA wfd;
HINTERNET hFile = FtpFindFirstFile(hInetConnect, TEXT("*"), &wfd, 0, (DWORD_PTR)this);
//hFile = hTemp;
if (hFile == NULL)
{
s.SetStatus("Fehler Dateien nicht geöffnet",hwnd);
return 0;
}
BOOL bResult = TRUE;
while (bResult)
{
if(strcmp(wfd.cFileName, "..")){
sprintf(szBuff, "Datei: %s wird behandelt.", wfd.cFileName);
status = szBuff;
s.SetStatus(const_cast<char*>(status.c_str()),hwnd);
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.
if(file){
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);
}
}else{
///////////////////////////////////
//////////////////////////////
char ab[500];
sprintf(ab,"%d",GetLastError());
if(GetLastError() == ERROR_FILE_NOT_FOUND) sprintf(ab,"Datei nicht gefunden");
statuss = "Fehler: ";
statuss += ab;
statuss += " (Datei öffnen)";
s.SetStatus(const_cast<char*>(statuss.c_str()),hwnd);
}
}
bResult = InternetFindNextFile(hFile, &wfd);
}
InternetCloseHandle(hFile);
///Hier User updaten
sprintf(directory_ftp,"../notes");
if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
status = "In Ordner ";
status += directory_ftp;
status += " gewechselt";
s.SetStatus(const_cast<char*>(status.c_str()),hwnd);
}
///Hier Notizen updaten
///Hier Notizen updaten
sprintf(directory_ftp,"../member");
if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
status = "In Ordner ";
status += directory_ftp;
status += " gewechselt";
s.SetStatus(const_cast<char*>(status.c_str()),hwnd);
}
///Hier Beiträge updaten
///Hier Beiträge updaten
s.SetStatus("Erfolgreich aktualisiert",hwnd);
}
InternetCloseHandle(hInetOpen);
InternetCloseHandle(hInetConnect);
s.iArt=0;
s.SetStatus("Verbindungen Getrennt!",hwnd);
MessageBox(NULL, "Die Vereinsmitglieder wurden erfolgreich vom Server geladen!","Geladen",MB_OK);
}
Der Dateiname wird richtig ausgelesen nur kann die date nicht geöffnet werden, wie gesagt.
Danke für die Hilfe im Vorraus und noch schöne Restweihnachtsfeiertage
Sönke