毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

VC++的ftp客户端设计论文(流程图+源代码) 第5页

更新时间:2010-5-18:  来源:毕业论文
VC++的ftp客户端设计论文(流程图+源代码) 第5页
 建立新类CFtpDlg管理该对话框,基类:CDialog
 构造函数代码:
CFtpDlg::CFtpDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFtpDlg::IDD, pParent)
{
 m_pConnection = NULL;
 m_pFileFind = NULL;
}
5.3.3   初始化对话框:
   
   1.为CFtpDlg添加WM_INITDIALOG响应函数OnInitDialog,代码如下:
 BOOL CFtpDlg::OnInitDialog()
{
 CDialog::OnInitDialog(); 
 //设置CListCtrl对象的属性
 m_FtpFile.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
 //设置列
 m_FtpFile.InsertColumn(0,"文件名",LVCFMT_CENTER,200);
 m_FtpFile.InsertColumn(1,"日期",LVCFMT_CENTER,100);
 m_FtpFile.InsertColumn(2,"字节数",LVCFMT_CENTER,100); 
 
//初如化CftpFileFind类对象m_pFileFind
m_pFileFind = new CFtpFileFind(m_pConnection);

 //调用OnQuary函数查询FTP服务器当前目录下的目录和文件信息
 OnQuary();
 return TRUE;
}
5.3.4 查询函数OnQuary:
  1.为查询按纽添加BN_CLICKED响应函数OnQuary,代码如下:
 void CFtpDlg::OnQuary()
 { ListContent("*"); }

 2.手动为CFtpDlg添加函数ListContent
声明: void ListContent(LPCTSTR );
定义代码:
//用于显示当前目录下所有的子目录与文件
void CFtpDlg::ListContent(LPCTSTR DirName)
{
 m_FtpFile.DeleteAllItems();
 BOOL bContinue;
 bContinue=m_pFileFind->FindFile(DirName);
 if (!bContinue)
 {
  //查找完毕,失败
  m_pFileFind->Close();
  m_pFileFind=NULL;
 } 
 CString strFileName;
 CString strFileTime;
 CString strFileLength; 
 while (bContinue)
 {  
  bContinue = m_pFileFind->FindNextFile(); 
  strFileName = m_pFileFind->GetFileName(); //得到文件名
  //得到文件最后一次修改的时间
  FILETIME ft;
  m_pFileFind->GetLastWriteTime(&ft);      
  CTime FileTime(ft);
  strFileTime = FileTime.Format("%y/%m/%d");   
  if (m_pFileFind->IsDirectory())
  {
   //如果是目录不求大小,用<DIR>代替
   strFileLength = "<DIR>";
  } 
  else
  {
   //得到文件大小
   if (m_pFileFind->GetLength64() <1024)
   {
    strFileLength.Format("%d B",m_pFileFind->GetLength64());
   }
   else   
   { 
    if (m_pFileFind->GetLength64() < (1024*1024)) 
     strFileLength.Format("%3.3f KB", 
     (LONGLONG)m_pFileFind->GetLength64()/1024.0); 
    else   
    { 
     if   (m_pFileFind->GetLength64()<(1024*1024*1024)) 
      strFileLength.Format("%3.3f MB",          (LONGLONG)m_pFileFind->GetLength64()/(1024*1024.0)); 
     else 
      strFileLength.Format("%1.3f GB",          (LONGLONG)m_pFileFind->GetLength64()/(1024.0*1024*1024)); 
    } 
   }
  }
  int i=0;
        m_FtpFile.InsertItem(i,strFileName,0);
  m_FtpFile.SetItemText(i,1,strFileTime);
  m_FtpFile.SetItemText(i,2,strFileLength);
  i++;
 } 
}

5.3.5 下一级目录函数OnNextdirectory:
为”下一级目录”按纽添加BN_CLICKED响应函数OnNextdirectory,代码如下:
void CFtpDlg::OnNextdirectory()

 static CString  strCurrentDirectory, strSub; //声明2个静态变量,
// strCurrentDirectory表示当前目录名,strSub表示选定的文件名
    //首先得到当前目录,保存在strCurrentDirectory
    m_pConnection->GetCurrentDirectory(strCurrentDirectory); 
 strCurrentDirectory+="/"; //在当前取得的目录名后添加“/”
 //得到所选择的文本,即所要进入的下一级目录名
 int i=m_FtpFile.GetNextItem(-1,LVNI_SELECTED); //判断文件是否选中
 strSub = m_FtpFile.GetItemText(i,0);//将选中的文件名保存至strSub
 if (i==-1)
 {
        AfxMessageBox("没有选择目录!",MB_OK | MB_ICONQUESTION);
 }
 else
 {   //判断是不是目录
  if ("<DIR>"!=m_FtpFile.GetItemText(i,2))//显示文件的第三列非<DIR>
  {
   AfxMessageBox("不是子目录!",MB_OK | MB_ICONSTOP);
  }
  else
  {
            //设置当前目录  
m_pConnection->SetCurrentDirectory(strCurrentDirectory+strSub);
   //对当前目录进行查询,更新ClistCtrl控件的内容
    ListContent("*");

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页

VC++的ftp客户端设计论文(流程图+源代码) 第5页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。