⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pheiftpdlg.cpp

📁 非常小巧的FTP Client 程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			  bWorking=finder.FindNextFile();
               currfd=finder.GetFileName();
	           if(finder.IsDirectory())
	                 UploadDir(currfd);
	            else
		             Uploadsf(currfd);
		  }
          else
		  {
			  CString mess=_T("Cannot upload: ")+selfile;
		      AfxMessageBox(mess);
		  }
		  finder.Close();
   
		}
	}

	SetRemDir(m_remdir);
}

void CPheiFTPDlg::OnButtonLocparent() 
{
     CString tdir=m_locdir;
	 int slopepos=tdir.ReverseFind('\\');
	 if(slopepos==-1)
		 return;
	 m_locdir=tdir.Left(slopepos);
	 SetLocDir(m_locdir);
	 UpdateData(FALSE); 
	
}

void CPheiFTPDlg::OnButtonRemparent() 
{
     CString tdir=m_remdir;
	 int slopepos=tdir.ReverseFind('/');
	 if(slopepos==-1)
		 return;
	 tdir=tdir.Left(slopepos);
	 if(tdir.IsEmpty())
		 tdir=_T("/");

     if(m_pFtpConnection->SetCurrentDirectory(tdir))
	 {
         m_remdir=tdir;
		 SetRemDir(m_remdir);
	 }
     else
	     AfxMessageBox("Can not open the parent dir!");

	 UpdateData(FALSE); 
}

void CPheiFTPDlg::SetLocDir(CString strlocdir)
{
    if(strlocdir.IsEmpty())
		strlocdir=_T("C:\\My Documents");
    m_locdir=strlocdir;

	//delete all existing items in the listctrl
    m_locfile.DeleteAllItems();

   //display all files and dirs in strlocdir
 
   CFileFind finder;
   CString strallfd=strlocdir+_T("\\*.*");
   CString currfd;
   int nItem=0;
   BOOL bWorking = finder.FindFile(strallfd);
   while (bWorking)
   {
      bWorking = finder.FindNextFile();
      currfd=finder.GetFileName();
	  CString ismp3f=currfd.Right(4);
	  CString mp3f=_T(".mp3");
	  CString exef=_T(".exe");
	  CString htmf=_T(".htm");
	  if(finder.IsDots() || finder.IsHidden() || finder.IsSystem())
		  continue;
	  if(finder.IsDirectory())
	      m_locfile.InsertItem(nItem,currfd,2);
	  else if(ismp3f==mp3f)
          m_locfile.InsertItem(nItem,currfd,0);
	  else if(ismp3f==exef)
          m_locfile.InsertItem(nItem,currfd,3);
	  else if(ismp3f==htmf)
          m_locfile.InsertItem(nItem,currfd,4);
	  else
		  m_locfile.InsertItem(nItem,currfd,1);
	  nItem++;
   }

   UpdateData(FALSE);
}

void CPheiFTPDlg::OnDblclkListLocfile(NMHDR* pNMHDR, LRESULT* pResult) 
{
	CListCtrl* pList=&m_locfile;
	int nItem;
    POSITION pos = pList->GetFirstSelectedItemPosition();
    if (pos == NULL)
    AfxMessageBox("No directary or file selected!");
    else
	{
          nItem = pList->GetNextSelectedItem(pos);
		  CString seldir;
          seldir=pList->GetItemText(nItem,0);
		  seldir=m_locdir+slope+seldir;
        
		  //the selected item is dir?
		  CFileFind finder;
  
          BOOL bWorking = finder.FindFile(seldir);
          if (bWorking)
		  {
             bWorking = finder.FindNextFile();
             if(finder.IsDirectory())
			 {
                 //if the selected item is dir,open it for local dir.
				 m_locdir=seldir;
				 SetLocDir(seldir);
				 UpdateData(FALSE);
			 }
			 else
			 {
                 ShellExecute(NULL, "open" ,seldir,NULL,NULL,SW_SHOWNORMAL);
			 }
	      
		  }

	}
	*pResult = 0;
}



void CPheiFTPDlg::OnSelchangeComboLocdir() 
{
	 UpdateData(TRUE);

	 CString rString;
     int selnum=m_ctrllocdir.GetCurSel();
	 m_ctrllocdir.GetLBText(selnum,rString);
	 m_locdir=rString;
 
	 SetLocDir(m_locdir);

	m_status=_T("Status: ");
    UpdateData(FALSE);	
	
}

void CPheiFTPDlg::OnKillfocusComboLocdir() 
{
	UpdateData(TRUE);

     CString tdir=m_locdir;
	 int slopepos=tdir.ReverseFind('\\');
	 if(slopepos!=-1)
	 {
		  tdir=tdir.Left(slopepos);
		  if(tdir.GetLength()==m_locdir.GetLength()-1)
			  m_locdir=tdir;
	 }
	 SetLocDir(m_locdir);

	m_status=_T("Status: ");
    UpdateData(FALSE);	
}

void CPheiFTPDlg::OnSetfocusComboLocdir() 
{
  m_status=_T("Local dir: ")+m_locdir;
  UpdateData(FALSE);
}


void CPheiFTPDlg::SetRemDir(CString strremdir)
{
       if(strremdir.IsEmpty())
		strremdir=_T("/");
      m_remdir=strremdir;

	//delete all existing items in the listctrl
    m_remfile.DeleteAllItems();

   //display all files and dirs in strremdir
	CFtpFileFind ftpFind(m_pFtpConnection);

	BOOL bContinue = ftpFind.FindFile(strremdir);
	if (!bContinue)
	{
		// the directory is empty; just close up and return.
		ftpFind.Close();
		return;
	}

	CString strFileName;
	int nItem=0;

	while (bContinue) 
	{
		// FindNextFile must be called before info can be gleaned from ftpFind
		bContinue = ftpFind.FindNextFile();
		strFileName = ftpFind.GetFileName();
	
	  CString ismp3f=strFileName.Right(4);
	  CString mp3f=_T(".mp3");
      CString exef=_T(".exe");
	  CString htmf=_T(".htm");

	  if(ftpFind.IsDots())
		  continue;
	  if(ftpFind.IsDirectory())
	      m_remfile.InsertItem(nItem,strFileName,2);
	  else if(ismp3f==mp3f)
          m_remfile.InsertItem(nItem,strFileName,0);
	  else if(ismp3f==exef)
          m_remfile.InsertItem(nItem,strFileName,3);
	  else if(ismp3f==htmf)
          m_remfile.InsertItem(nItem,strFileName,4);
	  else
		  m_remfile.InsertItem(nItem,strFileName,1);
	  nItem++;

	}

	ftpFind.Close();
	UpdateData(FALSE);

}

void CPheiFTPDlg::OnDblclkListRemfile(NMHDR* pNMHDR, LRESULT* pResult) 
{

	CListCtrl* pList=&m_remfile;
	int nItem;
    POSITION pos = pList->GetFirstSelectedItemPosition();
    if (pos == NULL)
    AfxMessageBox("No directary selected!");
    else
	{
          nItem = pList->GetNextSelectedItem(pos);
		  CString seldir;
          seldir=pList->GetItemText(nItem,0);

		  if(m_remdir==_T("/"))
		      seldir=m_remdir+seldir;
		  else
		      seldir=m_remdir+_T("/")+seldir;
        
           //if the selected item is dir,open it for remote dir.
                 if(m_pFtpConnection->SetCurrentDirectory(seldir))
				 {
					 m_remdir=seldir;
				     SetRemDir(seldir);
				     UpdateData(FALSE);
				 }
                 else
					 AfxMessageBox("Can not open the dir or it is not a dir!");

	}
	
	*pResult = 0;
}

void CPheiFTPDlg::Downloadsf(CString strFileName)
{
	CString pstrRemoteFile=m_remdir+_T("/")+strFileName;
	CString pstrLocalFile=m_locdir+_T("\\")+strFileName;
     if(m_pFtpConnection->GetFile(pstrRemoteFile,pstrLocalFile))
	 {
	    m_status=_T("Succeed to download  ")+strFileName;
		UpdateData(FALSE);
	 }
	 else
	 {
	    m_status=_T("Fail to download  ")+strFileName;
		UpdateData(FALSE);
	 }

}

void CPheiFTPDlg::Uploadsf(CString strFileName)
{
	CString pstrRemoteFile=m_remdir+_T("/")+strFileName;
	CString pstrLocalFile=m_locdir+_T("\\")+strFileName;
	if(m_pFtpConnection->PutFile(pstrLocalFile,pstrRemoteFile))
	 {
	    m_status=_T("Succeed to upload  ")+strFileName;
		UpdateData(FALSE);
	 }
	else
	 {
	    m_status=_T("Fail to upload  ")+strFileName;
		UpdateData(FALSE);
	 }
}

void CPheiFTPDlg::OnButtonManagesite() 
{
	CManageSite mngs;
	for(int icpy=0;icpy<30;icpy++)
	{
		strcpy(mngs.sitearray[icpy].name,sitearray[icpy].name);
		strcpy(mngs.sitearray[icpy].server,sitearray[icpy].server);
		strcpy(mngs.sitearray[icpy].user,sitearray[icpy].user);
		strcpy(mngs.sitearray[icpy].password,sitearray[icpy].password);
		strcpy(mngs.sitearray[icpy].port,sitearray[icpy].port);
	}
	mngs.sitecount=sitecount;

	if(mngs.DoModal()==IDOK)
	{	
		sitecount=mngs.sitecount;
        for(int icpyr=0;icpyr<sitecount;icpyr++)
		{
		  strcpy(sitearray[icpyr].name,mngs.sitearray[icpyr].name);
 		  strcpy(sitearray[icpyr].server,mngs.sitearray[icpyr].server);
	      strcpy(sitearray[icpyr].user,mngs.sitearray[icpyr].user);
		  strcpy(sitearray[icpyr].password,mngs.sitearray[icpyr].password);
		  strcpy(sitearray[icpyr].port,mngs.sitearray[icpyr].port);
		}

		if(sitefile.Open("sitemng",CFile::modeCreate | CFile::modeWrite))
		{
		       char codedpassword[20];
		       for(int si=0;si<sitecount;si++)
			   {
			          for(int ic=0;ic<20;ic++)
					  {
				            char ccode=code[ic];
				            char cpassword=sitearray[si].password[ic];
                            codedpassword[ic]=cpassword + ccode;
					  }
                      sitefile.Write(sitearray[si].name,10);
			          sitefile.Write(sitearray[si].server,40);
			          sitefile.Write(sitearray[si].user,20);
			          sitefile.Write(codedpassword,20);
			          sitefile.Write(sitearray[si].port,10);
			   }
	          sitefile.Flush();
              sitefile.Close();
		}
	}
	
}

void CPheiFTPDlg::OnSite1()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=0;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite2()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=1;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite3()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=2;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite4()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=3;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite5()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=4;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite6()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=5;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite7()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=6;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite8()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=7;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite9()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=8;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite10()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=9;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite11()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=10;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite12()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=11;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite13()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=12;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite14()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=13;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite15()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=14;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite16()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=15;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();
}
void CPheiFTPDlg::OnSite17()
{
	if(flagconnect)
        OnButtonDisconnect();
   int num=16;
   m_server=_T(sitearray[num].server);
   m_user=_T(sitearray[num].user);
   m_password=_T(sitearray[num].password);
   m_port=_T(sitearray[num].port);
   UpdateData(FALSE);
   OnButtonConnect();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -