2020-12-09

//补充头文件
#include <afxinet.h>#include <afxsock.h>//定义CInternetSession* m_pInetSession;CFtpConnection* m_pFtpConnection;CFtpFileFind* m_pRemoteFile;CString m_pRemoteFileName, m_LocateFileName;void CFTPClient2020Dlg::OnClickedConnect(){ // TODO: 在此添加控件通知处理程序代码 CString Address;//声明变量 GetDlgItemText(IDC_IP_INPUT, Address);//获得输入框所输入的地址 复制给Address OnConnect(Address);//调用OnConnect函数 把IP地址赋值 this->UpdateList();//更新列表}void CFTPClient2020Dlg::OnClickedDelete(){ // TODO: 在此添加控件通知处理程序代码 this->OnDelete(); this->UpdateList();}void CFTPClient2020Dlg::OnClickedDownload(){ // TODO: 在此添加控件通知处理程序代码 this->OnDownload(); this->UpdateList();}void CFTPClient2020Dlg::OnSelchangeListbox(){ // TODO: 在此添加控件通知处理程序代码}void CFTPClient2020Dlg::OnClickedUpdate(){ // TODO: 在此添加控件通知处理程序代码 this->OnUpdate(); this->UpdateList();}void CFTPClient2020Dlg::OnConnect(CString m_IPaddress){ // TODO: 在此处添加实现代码. m_pInetSession = new CInternetSession(AfxGetAppName(), 1, PRE_CONFIG_INTERNET_ACCESS); m_pFtpConnection = m_pInetSession->GetFtpConnection(m_IPaddress); m_pRemoteFile = new CFtpFileFind(m_pFtpConnection);}void CFTPClient2020Dlg::OnDownload(){ // TODO: 在此处添加实现代码. CString selfile; ListBox.GetText(ListBox.GetCurSel(), selfile);//获得想要下载资源名 if (!selfile.IsEmpty()) { //弹出另存为对话框 CFileDialog file(FALSE, NULL, selfile, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, L"所有文件(.)|.|", this); if (file.DoModal() == IDOK) { CString strname; strname = file.GetFileName(); CString strdir; m_pFtpConnection->GetCurrentDirectory(strdir); m_pFtpConnection->GetFile(selfile, strname);//下载文件到的本地位置 m_pInetSession->Close(); this->OnClickedConnect(); m_pFtpConnection->SetCurrentDirectory(strdir); this->UpdateList(); AfxMessageBox(_T(“下载成功!”)); } }}void CFTPClient2020Dlg::OnUpdate(){ // TODO: 在此处添加实现代码. CString str; CString strname; //弹出“打开”对话框 CFileDialog file(true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, L"所有文件(.)|.|", this); if (file.DoModal() == IDOK) { str = file.GetPathName(); strname = file.GetFileName(); } CString strdir; m_pFtpConnection->GetCurrentDirectory(strdir); //上传文件 BOOL bput = m_pFtpConnection->PutFile((LPCTSTR)str, (LPCTSTR)strname); if (bput) { m_pInetSession->Close();//关闭会话 this->OnClickedConnect();//重新连接保持持续会话 m_pFtpConnection->SetCurrentDirectory(strdir); this->UpdateList();//更新目录列表 AfxMessageBox(_T(“上传成功!”)); } }void CFTPClient2020Dlg::OnDelete(){ // TODO: 在此处添加实现代码. CString selfile; ListBox.GetText(ListBox.GetCurSel(), selfile);//获取用户要删除的资源名 if (!selfile.IsEmpty()) { if (AfxMessageBox(L"确定要删除这个文件?", 4 + 48) == 6) { m_pFtpConnection->Remove(selfile); } CString strdir; m_pFtpConnection->GetCurrentDirectory(strdir); m_pInetSession->Close(); this->OnClickedConnect(); m_pFtpConnection->SetCurrentDirectory(strdir); this->UpdateList(); }}void CFTPClient2020Dlg::UpdateList(){ // TODO: 在此处添加实现代码. ListBox.ResetContent();//自己声明的列表的变量名 //创建一个CFtpFileFind实例 CFtpFileFind ftpfind(m_pFtpConnection);//建立连接的实例 CString strdirpath; m_pFtpConnection->GetCurrentDirectory(strdirpath); //找到第一个文件或者文件夹 BOOL bfind = ftpfind.FindFile(strdirpath); while (bfind) { bfind = ftpfind.FindNextFile(); CString strpath; if (ftpfind.IsDots()) continue; if (!ftpfind.IsDirectory()) //判断是目录还是文件 { strpath = ftpfind.GetFileName(); //文件则读取文件名 ListBox.AddString(strpath); } else { strpath = ftpfind.GetFilePath(); ListBox.AddString(strpath); } }}

上一篇:Visual Stdio Code 插件推荐


下一篇:JavaWeb(part1)--servlet