📄 pheiftpdlg.cpp
字号:
}
void CPheiFTPDlg::OnSite18()
{
if(flagconnect)
OnButtonDisconnect();
int num=17;
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::OnSite19()
{
if(flagconnect)
OnButtonDisconnect();
int num=18;
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::OnSite20()
{
if(flagconnect)
OnButtonDisconnect();
int num=19;
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::OnSite21()
{
if(flagconnect)
OnButtonDisconnect();
int num=20;
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::OnSite22()
{
if(flagconnect)
OnButtonDisconnect();
int num=21;
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::OnSite23()
{
if(flagconnect)
OnButtonDisconnect();
int num=22;
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::OnSite24()
{
if(flagconnect)
OnButtonDisconnect();
int num=23;
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::OnSite25()
{
if(flagconnect)
OnButtonDisconnect();
int num=24;
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::OnSite26()
{
if(flagconnect)
OnButtonDisconnect();
int num=25;
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::OnSite27()
{
if(flagconnect)
OnButtonDisconnect();
int num=26;
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::OnSite28()
{
if(flagconnect)
OnButtonDisconnect();
int num=27;
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::OnSite29()
{
if(flagconnect)
OnButtonDisconnect();
int num=28;
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::OnSite30()
{
if(flagconnect)
OnButtonDisconnect();
int num=29;
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::UploadDir(CString & updir)
{
if(m_pFtpConnection->CreateDirectory(updir))
{
if(m_remdir==_T("/"))
m_remdir=m_remdir+updir;
else
m_remdir=m_remdir+_T("/")+updir;
//if the selected item is dir,open it for remote dir.
if(m_pFtpConnection->SetCurrentDirectory(m_remdir))
{
SetRemDir(m_remdir);
//change local dir
m_locdir=m_locdir+_T("\\")+updir;
SetLocDir(m_locdir);
UpdateData(FALSE);
//upload all file and dir in m_locdir
CFileFind finder;
CString strallfd=m_locdir+_T("\\*.*");
CString currfd;
BOOL bWorking = finder.FindFile(strallfd);
while (bWorking)
{
bWorking = finder.FindNextFile();
currfd=finder.GetFileName();
if(finder.IsDots() || finder.IsHidden() || finder.IsSystem())
continue;
else if(finder.IsDirectory())
UploadDir(currfd);
else
Uploadsf(currfd);
}
UpdateData(FALSE);
OnButtonLocparent();
OnButtonRemparent();
}
else
UpdateData(TRUE);
}
}
void CPheiFTPDlg::DownloadDir(CString & downdir)
{
CString dirarr[300];
int dircount=0;
CString md=m_locdir+_T("\\")+downdir;
_mkdir(md);
//change local dir
m_locdir=m_locdir+_T("\\")+downdir;
SetLocDir(m_locdir);
UpdateData(FALSE);
//change remote dir
if(m_remdir==_T("/"))
m_remdir=m_remdir+downdir;
else
m_remdir=m_remdir+_T("/")+downdir;
if(m_pFtpConnection->SetCurrentDirectory(m_remdir))
{
SetRemDir(m_remdir);
//download every file or dir in remote dir
CFtpFileFind ftpFind(m_pFtpConnection);
CString strremdir=m_remdir+ _T("/*.*");
BOOL bContinue = ftpFind.FindFile(strremdir);
if (!bContinue)
{
ftpFind.Close();
return;
}
CString strFileName;
while (bContinue)
{
bContinue = ftpFind.FindNextFile();
strFileName = ftpFind.GetFileName();
if(ftpFind.IsDots())
continue;
else if(ftpFind.IsDirectory())
{
dirarr[dircount]=strFileName;
dircount++;
}
else
Downloadsf(strFileName);
}
ftpFind.Close();
for(int id=0;id<dircount;id++)
{
DownloadDir(dirarr[id]);
}
//finish downloading,return to parent dir
UpdateData(FALSE);
OnButtonLocparent();
OnButtonRemparent();
}
else
UpdateData(TRUE);
}
void CPheiFTPDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu ctmenu;
CRect rectloc;
CRect rectrem;
GetDlgItem(IDC_LIST_LOCFILE)->GetWindowRect(rectloc);
GetDlgItem(IDC_LIST_REMFILE)->GetWindowRect(rectrem);
ctmenu.CreatePopupMenu();
if(rectloc.PtInRect(point))
{
//display the contextmenu in list locfile
int nItem=0;
POSITION pos = m_locfile.GetFirstSelectedItemPosition();
if (pos == NULL)
ctmenu.AppendMenu(MF_STRING,ID_MENU_MAKELOCDIR,"make local dir");
else
{
nItem = m_locfile.GetNextSelectedItem(pos);
CString seldir;
CString seldirbup;
seldirbup=m_locfile.GetItemText(nItem,0);
seldir=m_locdir+slope+seldirbup;
activelocfd=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
ctmenu.AppendMenu(MF_STRING,ID_MENU_DELLOCDIR,"delete local dir");
}
else
{
ctmenu.AppendMenu(MF_STRING,ID_MENU_DELLOCFILE,"delete local file");
ctmenu.AppendMenu(MF_STRING,ID_MENU_RENLOCFILE,"rename local file");
}
}
finder.Close();
}
ctmenu.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
}
else if(rectrem.PtInRect(point))
{
//display the contextmenu in list remfile
int nItem=0;
POSITION pos = m_remfile.GetFirstSelectedItemPosition();
if (pos == NULL)
ctmenu.AppendMenu(MF_STRING,ID_MENU_MAKEREMDIR,"make remote dir");
else
{
nItem = m_remfile.GetNextSelectedItem(pos);
CString seldir;
CString seldirbup;
CString browfd;
seldirbup=m_remfile.GetItemText(nItem,0);
if(m_remdir==_T("/"))
{
seldir=m_remdir+_T("*.*");
activeremfd=m_remdir+seldirbup;
}
else
{
seldir=m_remdir+_T("/*.*");
activeremfd=m_remdir+_T("/")+seldirbup;
}
//the selected item is dir?
CFtpFileFind finder(m_pFtpConnection);
BOOL bWorking = finder.FindFile(seldir);
while(bWorking)
{
bWorking = finder.FindNextFile();
browfd=finder.GetFileName();
if(browfd!=seldirbup)
continue;
if(finder.IsDirectory())
{
//if the selected item is dir
ctmenu.AppendMenu(MF_STRING,ID_MENU_DELREMDIR,"delete remote dir");
}
else
{
ctmenu.AppendMenu(MF_STRING,ID_MENU_DELREMFILE,"delete remote file");
ctmenu.AppendMenu(MF_STRING,ID_MENU_RENREMFILE,"rename remote file");
}
}
finder.Close();
}
ctmenu.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
}
else
return;
}
void CPheiFTPDlg::OnMakeLocdir()
{
CString strdirname;
CDirname dlgdirname;
if(dlgdirname.DoModal()==IDOK)
strdirname=dlgdirname.m_dirname;
if(strdirname.IsEmpty())
return;
else
{
CString md=m_locdir+_T("\\")+strdirname;
_mkdir(md);
SetLocDir(m_locdir);
}
}
void CPheiFTPDlg::OnDelLocdir()
{
dellocaldir(activelocfd);
SetLocDir(m_locdir);
}
void CPheiFTPDlg::OnDelLocfile()
{
CFile::Remove(activelocfd);
SetLocDir(m_locdir);
}
void CPheiFTPDlg::OnRenLocfile()
{
CFname renfn;
CString newfname;
if(renfn.DoModal()==IDOK)
{
newfname=m_locdir+_T("\\")+renfn.m_fname;
if(newfname==activelocfd)
{
AfxMessageBox("Please enter a different filename!");
return;
}
else
{
CFile::Rename(activelocfd,newfname);
SetLocDir(m_locdir);
}
}
}
void CPheiFTPDlg::OnMakeRemdir()
{
CString strdirname;
CDirname dlgdirname;
if(dlgdirname.DoModal()==IDOK)
strdirname=dlgdirname.m_dirname;
if(strdirname.IsEmpty())
return;
else
{
CString md=m_remdir+_T("/")+strdirname;
m_pFtpConnection->CreateDirectory(md);
SetRemDir(m_remdir);
}
}
void CPheiFTPDlg::OnDelRemdir()
{
CString confirm=_T("Are you sure to remove the dir and all its components?");
if(AfxMessageBox(confirm,MB_OKCANCEL)==IDOK)
{
delremotedir(activeremfd);
SetRemDir(m_remdir);
}
}
void CPheiFTPDlg::OnDelRemfile()
{
delremotefile(activeremfd);
SetRemDir(m_remdir);
}
void CPheiFTPDlg::OnRenRemfile()
{
CFname renfn;
CString newfname;
if(renfn.DoModal()==IDOK)
{
newfname=m_remdir+_T("/")+renfn.m_fname;
if(newfname==activeremfd)
{
AfxMessageBox("Please enter a different filename!");
return;
}
else
{
m_pFtpConnection->Rename(activeremfd,newfname);
SetRemDir(m_remdir);
}
}
}
void CPheiFTPDlg::delremotefile(CString &rf)
{
m_pFtpConnection->Remove(rf);
}
void CPheiFTPDlg::delremotedir(CString &rd)
{
m_pFtpConnection->SetCurrentDirectory(rd);
//delete all the files and dirs in the dir
CFtpFileFind ftpFind(m_pFtpConnection);
BOOL bContinue = ftpFind.FindFile(rd);
CString strFileName;
CString dirarr[300];
int dircount=0;
while (bContinue)
{
bContinue = ftpFind.FindNextFile();
strFileName = ftpFind.GetFileName();
if(ftpFind.IsDirectory())
{
dirarr[dircount]=strFileName;
dircount++;
}
else
delremotefile(strFileName);
}
ftpFind.Close();
for(int id=0;id<dircount;id++)
{
CString fulldir=rd+_T("/")+dirarr[id];
delremotedir(fulldir);
}
//return to parent dir and del "rd" itself
CString tdir=rd;
int slopepos=tdir.ReverseFind('/');
if(slopepos==-1)
return;
tdir=tdir.Left(slopepos);
if(tdir.IsEmpty())
tdir=_T("/");
if(m_pFtpConnection->SetCurrentDirectory(tdir))
{
m_pFtpConnection->RemoveDirectory(rd);
}
}
void CPheiFTPDlg::dellocaldir(CString &ld)
{
CFileFind finder;
CString strallfd=ld+_T("\\*.*");
CString currfd;
BOOL bWorking = finder.FindFile(strallfd);
while (bWorking)
{
bWorking = finder.FindNextFile();
currfd=finder.GetFilePath();
if(finder.IsDots())
continue;
else if(finder.IsDirectory())
dellocaldir(currfd);
else
CFile::Remove(currfd);
}
finder.Close();
//return to parent dir and delete ld itself
RemoveDirectory(ld);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -