这个是在上个版本上面修改而来,没有目录级数的限制。
BOOL CFileTreeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
m_iImageList.Create(24, 24, TRUE,1, 0);
HICON hIcon = NULL;
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_KEBIAO), IMAGE_ICON, 24, 24, 0);
m_iImageList.Add(hIcon);
m_FileTree.SetImageList ( &m_iImageList,TVSIL_NORMAL );
strHTFir = m_FileTree.InsertItem("成绩表",0,0,NULL);
BrowseFile(strHTFir,"成绩表");//遍历"成绩表"文件夹内的所有目录
return TRUE; // return TRUE unless you set the focus to a control
}
void CFileTreeDlg::BrowseFile(HTREEITEM strHTFir111, CString strFile)
{
CFileFind ff;
CString szDir = strFile; if(szDir.Right(1) != "\\")
szDir += "\\"; szDir += "*.*"; BOOL res = ff.FindFile(szDir); while(res)
{
res = ff.FindNextFile();
CString strPath = ff.GetFilePath();
CString strTitle = ff.GetFileTitle();
if (ff.IsDots())
{
continue;
}
HTREEITEM Htree = m_FileTree.InsertItem(strTitle,0,0,strHTFir111); if(ff.IsDirectory())
{
//如果是一个子目录,用递归继续往深一层找
BrowseFile(Htree, strPath);
}
}
ff.Close();//关闭
}