TIdFTP::List und Windows NT Server (war: IdFTP)
-
Hallo,
habe schon seit längeren ein kleines FTP Programm geschrieben.
Bis her ging es auch immer Problemlos.
Nun muste ich leider feststellen das aber bei ausführen von List() es bei einem FTP Server des Typen "Windows-NT" zu einen 10060 Socket Error kommt, weiß einer ob es sich hier um einen weitern Bug in der Komponente handelt.
Firewall Probleme und der gleichen habe ich bereits ausgeschloßen.
Unter Unix hat normalerweise die Komponente einen Bug, den man sehr leicht umgehen kann. siehe Code. Nur was mich ich in meinem Fall????if(ExtList->Count > 0){ try{ frmMain->IdFTPJob->ListResult->Clear(); frmMain->IdFTPJob->List(FileListBuffer,"",true); // second para passed by "", as error of "*.*" on Unix and third para passed by true, as error with file-ext on Unix too frmMain->IdFTPJob->DirectoryListing->LoadList(FileListBuffer); }catch(Exception &exception){ if(exception.Message.Pos("No files found") == 0){ String sMsg = sJobName+":\n\terror, get files on server - "+exception.Message+"\n"; WriteLog(NULL, "joberr.log", sMsg.c_str(), frmMain->m_sLogCreateTxt.c_str(), false); ::Release(FileList); ::Release(FileListBuffer); ::Release(ExtList); ::Release(ExcludeList); return; } } if(frmMain->IdFTPJob->DirectoryListing->Count > 0){ for(int n = 0; n < frmMain->IdFTPJob->DirectoryListing->Count; n++){ try{ TIdDirItemType ItemType = frmMain->IdFTPJob->DirectoryListing->Items[n]->ItemType; if(ItemType == ditFile){ String sFileName = frmMain->IdFTPJob->DirectoryListing->Items[n]->FileName; for(int i = 0; i < ExtList->Count; i++){ if( ( ExtList->Strings[i] == "*.*" || wildicmp(ExtList->Strings[i].c_str(), sFileName.c_str())==true ) && FileList->IndexOf(sFileName) == -1 ){ bool bExclude = false; if(ExcludeList->Count > 0){ for(int y = 0; y < ExcludeList->Count; y++){ if( wildicmp(ExcludeList->Strings[y].c_str(), sFileName.c_str())==true && ExcludeList->Strings[y].Pos(".")>0 && sFileName.Pos(".")>0 ){ bExclude = true; break; } } } if(bExclude == false){ FileList->Add(sFileName); } } } } ......Edit:
Bitte aussagekräftige Überschriften wählen!
Und ruhig auch mal die C++-Tags benutzen.
-
An welcher Stelle tritt der SocketError auf? Bist du sicher, dass du korrekt angemeldet bist, der Connect also erfolgreich war?