FTP客户端课程设计报告书(4)
{
// 点到的是文件,进行下载
cFtpOpr.GetFtpFile(FirstColumn,m_strLocPath); ListLocFile(); // 下载完成后更新本地文件显示 } } }
// 删除服务器文件或文件夹 void CFtpDlg::OnBtndel() {
POSITION p=m_ctrlServerFile.GetFirstSelectedItemPosition(); if (p == NULL) {
return; }
//获取刚选取的位置的下标(从0开始的)
int index = m_ctrlServerFile.GetNextSelectedItem(p); //获得选中的内容
//得到第index行.第0列的内容(下标从0开始)
CString FirstColumn=m_ctrlServerFile.GetItemText(index,0); CString SecondColumn = m_ctrlServerFile.GetItemText(index,1); if (SecondColumn==\文件夹\ {
if (cFtpOpr.ReStatus()==2) {
// 移除文件夹
cFtpOpr.DeleteFTPf(FirstColumn,0);
UpdateServerFile();// 更新服务器的文件显示 }
return; }
else if (SecondColumn==\文件\ {
if (cFtpOpr.ReStatus()==2) { // 移除文件
cFtpOpr.DeleteFTPf(FirstColumn,1);
UpdateServerFile();// 更新服务器的文件显示 } } }
void CFtpDlg::UpdateServerFile()// 更新服务器的文件显示 {
第15页
// 获得目录 CStringArray localName; int nFileNumber=0;
nFileNumber=cFtpOpr.GetMultipleFileName(&localName); m_ctrlServerFile.DeleteAllItems();
m_ctrlServerFile.InsertItem(0,\上层目录\ for(int test=0;test CString stTemp = localName.GetAt(test); if (stTemp.Right(5) == \ {// 文件夹 LVITEM lvitem; CString str = stTemp.Left(stTemp.GetLength() - 5); lvitem.mask = LVIF_IMAGE|LVIF_TEXT; lvitem.iItem =test+1; lvitem.pszText = (LPSTR)(LPCTSTR)str; lvitem.iImage = 0; lvitem.iSubItem =0; m_ctrlServerFile.InsertItem(&lvitem); m_ctrlServerFile.SetItemText(test+1,1,\文件夹\ } else {// 文件 LVITEM lvitem; lvitem.mask = LVIF_IMAGE|LVIF_TEXT; lvitem.iItem =test+1; lvitem.pszText = (LPSTR)(LPCTSTR)stTemp; lvitem.iImage = 1; lvitem.iSubItem =0; m_ctrlServerFile.InsertItem(&lvitem); m_ctrlServerFile.SetItemText(test+1,1,\文件\ } } } void CFtpDlg::OnBtnhelp() { CAboutDlg dlg; dlg.DoModal(); } // 用于屏蔽按下回车键程序退出的问题 BOOL CFtpDlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->message ==WM_KEYDOWN && pMsg->wParam==VK_RETURN ) { 第16页 return true; } return CDialog::PreTranslateMessage(pMsg); } // 复选框,是否匿名 void CFtpDlg::OnChkanonymous() { if (m_chkAnony.GetCheck()) {// 被选上 bAnony = 1; // 使用匿名 m_editName.GetWindowText(m_strName); // 记录FTP登陆用户名,用于不使用匿名后恢复 m_editPassword.GetWindowText(m_strPassword); // 记录FTP登陆用户密码,用于不使用匿名后恢复 m_editName.SetWindowText(\ m_editPassword.SetWindowText(\ m_editName.EnableWindow(FALSE); m_editPassword.EnableWindow(FALSE); } else { bAnony = 0; // 不使用匿名 m_editName.SetWindowText(m_strName); // 恢复 m_editPassword.SetWindowText(m_strPassword); // 恢复 m_editName.EnableWindow(TRUE); m_editPassword.EnableWindow(TRUE); } } (2)CFtpOperate的一些函数定义 // 构造函数 CFtpOperate::CFtpOperate() { strAppName.LoadString(AFX_IDS_APP_TITLE); // 获得应用程序的名字 pInternetSession = new CInternetSession(strAppName,INTERNET_OPEN_TYPE_PRECONFIG); pEdiMes = NULL; if(!pInternetSession) { AfxMessageBox(\初始化会话失败!\ flag = -1; // 初始化失败设为-1 return; } flag =0; // 初始化成功,标志初始化为0 } 第17页 // 析构函数 CFtpOperate::~CFtpOperate() { pInternetSession->Close(); if(pInternetSession != NULL) { delete pInternetSession; } } // 设置,由外部调用,把数据传进来 bool CFtpOperate::set(CString FullURL,CString UserName,CString Password) { if (flag == -1) // 类实例初始化时失败 {// 重新设定 strAppName.LoadString(AFX_IDS_APP_TITLE); // 获得应用程序的名字 pInternetSession = new CInternetSession(strAppName,INTERNET_OPEN_TYPE_PRECONFIG); if(!pInternetSession) { AfxMessageBox(\初始化会话失败!\ flag = -1; // 初始化失败设为-1 return 0; } flag =0; } // flag 不等于-1时才会进行以下设置 m_strUserName = UserName; // 用户名字 m_strPassword = Password; // 用户密码 m_strFullURL = FullURL; // 设置路径 if(m_strFullURL == \ { flag = 0; } else { if (m_strFullURL.Left(6) != \ { m_strFullURL = \ } flag = 1; return 1; } return 0; } 第18页 // 打开连接 bool CFtpOperate::OpenConnection() { if (flag ==2) {// 已连接了,先断开 CloseConnection(); flag = 1; } if (flag != 1) { AfxMessageBox(\未成功进行set调用\ return 0; } CWaitCursor cursor; CString strTemp; strTemp = \ // 解析URL if (!AfxParseURL(m_strFullURL, dwServiceType, m_strServerName, strAppName, nPort)) { CurrentTime=CTime::GetCurrentTime(); strTime.Format(\,CurrentTime.GetDay(),CurrentTime.GetHour(), CurrentTime.GetMinute(),CurrentTime.GetSecond()); strTime += \无法解析 FTP服务器 \ int nLength = pEdiMes->SendMessage(WM_GETTEXTLENGTH); pEdiMes->SetSel(nLength, nLength); pEdiMes->ReplaceSel(strTime); flag = 0; return 0; } //提取path int nIndex=strTemp.GetLength()+m_strServerName.GetLength(); m_strFullPath=m_strFullURL.Right(m_strFullURL.GetLength()-nIndex); // 设置服务器当前路径名 m_strFullPath += '/'; // 解析成功后进行连接 try { CurrentTime=CTime::GetCurre
…… 此处隐藏:2450字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




