//======================================初始化操作===========================================
m_disk.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_disk.AddString(k);
}
m_disk.SetCurSel(0);
//以上是遍历盘符操作
m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);//设置拓展风格
m_list.InsertColumn(0, _T("文件"), LVCFMT_LEFT, 300);//设置第一列
void CFindFileDlg::FindFile(CString strPath)//定义一个查找函数
{
CString strtemp, strfilename;
m_FileName.GetWindowText(strfilename);
if (strPath.Right(1) != "\\")
strtemp.Format(_T("%s\\*.*"), strPath);
else
strtemp.Format(_T("%s*.*"), strPath);
CFileFind findfile;
BOOL bfind = findfile.FindFile(strtemp);
while (bfind)//只要可以搜索到文件,就一直循环
{
bfind = findfile.FindNextFile();
if (strfilename == findfile.GetFileName())
{
int i = m_list.GetItemCount();
m_list.InsertItem(i,findfile.GetFilePath());
}
if (findfile.IsDirectory() && !findfile.IsDots())//如果搜到的是一个文件夹
{
FindFile(findfile.GetFilePath());//则用递归的方法重新遍历
}
}
}
void CFindFileDlg::OnBnClickedButton1()//按下查找按钮
{
// TODO: 在此添加控件通知处理程序代码
CString strpath, strfilename;
m_FileName.GetWindowText(strfilename);
m_disk.GetWindowText(strpath);
FindFile(strpath);
CString S;
int i = m_list.GetItemCount();
S.Format(_T("%d"), i );
AfxMessageBox(_T("搜索完毕!共找到") + S + _T("个结果!"));
}
全盘的文件遍历
最新推荐文章于 2022-12-02 15:10:41 发布