[ kukipei @ 12.08.2005. 10:24 ] @
Pozdrav, Pokusavam da skinem neke fajlove sa FTP servisa: Kod: CString Konekcija::SkiniFajlove(CString slovo) { TCHAR szCause[255]; CString sPoruka=""; CString strOpsti = this->m_strRemoteDir1; try { //create the internet session CInternetSession mysession("centr_mod", 1, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, INTERNET_FLAG_DONT_CACHE); m_strLocalDir1 = m_strPut1+"/"+strOpsti; //get the ftp connection from internet session CString str=""; m_edit->GetWindowText(str); str = str + "Konektujem se na server" + " " +"radi skidanja fajlova "+slovo+"\r\n"; m_edit->SetWindowText(str); m_edit->LineScroll(m_edit->GetLineCount()); CFtpConnection* pFtpConn = mysession.GetFtpConnection(m_strImeFTPServera, m_strFTPUsername, m_strFTPLozinka); if (pFtpConn) { m_edit->GetWindowText(str); str = str + "Uspesno sam se konektovao na server."+"\r\n"; m_edit->SetWindowText(str); m_edit->LineScroll(m_edit->GetLineCount()); CFtpFileFind finder(pFtpConn); BOOL bRadi; BOOL bWorking = finder.FindFile(m_strRemoteDir1+"/*.*"); while (bWorking) { bWorking = finder.FindNextFile(); if (finder.IsDirectory() && !finder.IsDots()) { CInternetSession mysession2("centr_mod", 1, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, INTERNET_FLAG_DONT_CACHE); CFtpConnection* pFtpConn2 = mysession2.GetFtpConnection(m_strImeFTPServera, m_strFTPUsername, m_strFTPLozinka); CFtpFileFind nadji(pFtpConn2); m_edit->GetWindowText(str); str = str + "Trazim na FTP "+ m_strRemoteDir1+"/"+finder.GetFileName()+"/"+slovo+"\r\n"; m_edit->SetWindowText(str); m_edit->LineScroll(m_edit->GetLineCount()); bRadi = nadji.FindFile(m_strRemoteDir1+"/"+finder.GetFileName()+"/"+slovo, INTERNET_FLAG_DONT_CACHE); if (!bRadi) { m_edit->GetWindowText(str); str = str + "Nisam nasao na FTP "+ m_strRemoteDir1+"/"+finder.GetFileName()+"/"+slovo+"\r\n"; m_edit->SetWindowText(str); m_edit->LineScroll(m_edit->GetLineCount()); } while (bRadi) { bRadi = nadji.FindNextFile(); if (pFtpConn2->GetFile(m_strRemoteDir1+"/"+(LPCTSTR) finder.GetFileName()+"/"+nadji.GetFileName(), m_strLocalDir1+"/"+(LPCTSTR) finder.GetFileName()+"/"+nadji.GetFileName(), FALSE)) { m_edit->GetWindowText(str); str = str + "Skinuo sam "+ finder.GetFileName()+" "+nadji.GetFileName()+"\r\n"; m_edit->SetWindowText(str); m_edit->LineScroll(m_edit->GetLineCount()); UpisUBazu("Skinuo sam "+ finder.GetFileName()+" "+nadji.GetFileName()); sPoruka = "Skinuo sam "+ finder.GetFileName()+" "+nadji.GetFileName(); pFtpConn2->Remove(m_strRemoteDir1+"/"+(LPCTSTR) finder.GetFileName()+"/"+nadji.GetFileName()); } else { //DWORD GR = GetLastError(); m_edit->GetWindowText(str); str = str + "Greska! Nisam skinuo trazeni fajl! "+ finder.GetFileName()+" "+nadji.GetFileName()+"\r\n"; m_edit->SetWindowText(str); m_edit->LineScroll(m_edit->GetLineCount()); UpisUBazu("Greska! Nisam skinuo trazeni fajl! "+ finder.GetFileName()+" "+nadji.GetFileName()); sPoruka = "Greska! Nisam skinuo trazeni fajl! "+ finder.GetFileName()+" "+nadji.GetFileName(); } if (m_stop) return "stani"; } mysession2.Close(); }//-------------------------------------------- if (m_stop) return "stani"; } } else { m_edit->GetWindowText(str); str = str + "Greska! Nisam se konektovao na server!."+"\r\n"; m_edit->SetWindowText(str); m_edit->LineScroll(m_edit->GetLineCount()); UpisUBazu("Greska! Nisam se konektovao na server!"); sPoruka = "Greska! Nisam se konektovao na server!"; } mysession.Close(); } catch(CException* error) { error->GetErrorMessage(szCause,254,NULL); sPoruka.Format("%s",szCause); CString str = ""; m_edit->GetWindowText(str); str = str + sPoruka+" iz f-je SkiniFajlove "+slovo+"\r\n"; m_edit->SetWindowText(str); m_edit->LineScroll(m_edit->GetLineCount()); UpisUBazu(sPoruka+" iz f-je SkiniFajlove "+slovo); sPoruka = sPoruka+" iz f-je SkiniFajlove "+slovo; } return sPoruka; } kada je na racunaru ukljucen servis: "Windows Firewall/Internet Connection Sharing" ovaj kod radi izvesno vreme pa pukne. Pukne uvek na razlicito mesto u trenutku kada se obraca FTP serveru. kada je gornji servis iskljucen sve radi odlicno. Da li neko zna kako da prodjem kroz Firewall, posto mi je potrebno da gornji servis bude ukljucen. Pozdrav. |