注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沙漠里de烟雨

原创分享,禁止转载

 
 
 

日志

 
 

MFC--本地磁盘目录树  

2012-09-04 01:07:25|  分类: C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//////////////////////////////////////////////////////////////////////////
/////////   ***以下四个函数与遍历并显示磁盘驱动器树***     /////////////
//////////////////////////////////////////////////////////////////////////---zwh--注:获取逻辑磁盘驱动器;
void CBackupToolDlg::GetLogicalDrivers(HTREEITEM hParent)
{
 DWORD szNumOfAllDriversString = GetLogicalDriveStrings(0,NULL);  //返回系统中所有本地驱动器;
 LPSTR pDriversString = new char[szNumOfAllDriversString+sizeof("")];
 GetLogicalDriveStrings(szNumOfAllDriversString,pDriversString); //拿到所有的本地驱动器;
 
 size_t szDriverString = strlen(pDriversString);
 while (szDriverString>0)
 {
  m_srcTree.InsertItem(pDriversString,2,2,hParent);  //插入C,D,E等本地驱动器,并未选与选中都用第3号(索引号为2的)图标;
  pDriversString += szDriverString +1;
  szDriverString = strlen(pDriversString);
 }
}
//////////////////////////////////////////////////////////////////////////---zwh;
//////////////////////////////////////////////////////////////////////////---zwh--注:获取驱动器目录;
void CBackupToolDlg::GetDriverDir(HTREEITEM hParent)
{
 HTREEITEM hChild = m_srcTree.GetChildItem(hParent);  //得到子节点;
 while(hChild)  //得到外面的节点;
 {
  CString str = m_srcTree.GetItemText(hChild);
  if (str.Right(1)!="\\")
  {
   str += "\\";
  }
  str += "*.*";
  CFileFind file;
  BOOL b = file.FindFile(str);
  while (b)
  {
   b = file.FindNextFile();
   if (file.IsDirectory()&&!file.IsDots())
   {
    m_srcTree.InsertItem(file.GetFileName(),0,1,hChild); //插入子文件夹;
   }
  }
  hChild = m_srcTree.GetNextItem(hChild,TVGN_NEXT);
 }
}
//////////////////////////////////////////////////////////////////////////---zwh;
//////////////////////////////////////////////////////////////////////////---zwh--注:拿到文件或文件夹的绝对路径;
CString CBackupToolDlg::GetFullPath(HTREEITEM hCurrent)  //得到全路径;
{
 CString strReturn,strTemp;
 strReturn = "";
 while(hCurrent!=m_hSrcRoot)
 {
  strTemp = m_srcTree.GetItemText(hCurrent);
  if (strTemp.Right(1)!="\\")
  {
   strTemp += "\\";
  }
  strReturn = strTemp+strReturn;
  hCurrent = m_srcTree.GetParentItem(hCurrent);
 }
 return strReturn;
}
//////////////////////////////////////////////////////////////////////////---zwh;
//////////////////////////////////////////////////////////////////////////---zwh--注:增加子目录树节点;
void CBackupToolDlg::AddSubDir(HTREEITEM hParent)
{
 CString strPath = GetFullPath(hParent);
 if (strPath.Right(1)!="\\")
 {
  strPath+="\\";
 }
 strPath+="*.*";
 CFileFind file;
 BOOL b = file.FindFile(strPath);
 while (b)
 {
  b = file.FindNextFile();
  if (file.IsDirectory()&&!file.IsDots())
  {
   m_srcTree.InsertItem(file.GetFileName(),0,1,hParent);  //插入所有文件夹;
  }
 }
}
//////////////////////////////////////////////////////////////////////////--zwh;
  评论这张
 
阅读(514)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018