教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

FTP客户端课程设计报告书(4)

来源:网络收集 时间:2026-08-29
导读: { // 点到的是文件,进行下载 cFtpOpr.GetFtpFile(FirstColumn,m_strLocPath); ListLocFile(); // 下载完成后更新本地文件显示 } } } // 删除服务器文件或文件夹 void CFtpDlg::OnBtndel() { POSITION p=m_ctrlServ

{

// 点到的是文件,进行下载

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

FTP客户端课程设计报告书(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/404873.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)