【MFC】获取磁盘名称和遍历磁盘目录方法

分享三个MFC获取磁盘名称和目录的方法

void CGetLogicalDriveStringsDlg::getlogdrv()
{
	//获取所有盘符
         CComboBox m_com;
	m_com.ResetContent();
	TCHAR szBuf[100];
	memset(szBuf,0,100);
	
	DWORD len=GetLogicalDriveStrings(sizeof(szBuf)/sizeof(TCHAR),szBuf);
	
	for (TCHAR * s= szBuf;*s;s+=_tcslen(s)+1)
	{
		//MessageBox(sDrivePath);
		CString k = s;
		m_com.AddString(k);
	}
	m_com.SetCurSel(0);
}

//判断U盘是否插入
void CGetLogicalDriveStringsDlg::OnDeviceChange(UINT nEventType, DWORD dwData)
{
	if( nEventType ==32768) 
	{
		GetDlgItem(IDC_STATIC5)->SetWindowText(_T("U盘插入"));
	}
	
	else if(nEventType ==32772)  
	{
		GetDlgItem(IDC_STATIC5)->SetWindowText(_T("U盘拔出"));
	}
	getlogdrv();
}

//使用一个递归函数遍历磁盘目录 strdir为盘符根目录 如:C:\\

void   browsedir(CString   strdir) 
{ 
    CFileFind   ff; 
    CString   szdir=strdir  ; 

    if(szdir.Right(1)!= "\\ ") 
       szdir+= "\\ "; 
       szdir+= "*.* "; 

    BOOL   res=ff.FindFile(szdir); 
while(res) 
{ 
res=ff.FindNextFile(); 
if(ff.IsDirectory()&&!ff.IsDots()) 
      browsedir(ff.GetFilePath()); 
else   if(!ff.IsDirectory()&&!ff.IsDots()) 
{ 
str.Format( "%s ",ff.GetFilePath()); 
m_ctrllist.AddString(str); 
} 
} 
ff.close; 
} 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值