如何实现一个带文件过滤的DirTree

CrasyFman 2011-03-09 08:15:10
需求是这样的,选中一个目录,然后将该目录下的所有目标格式文件和文件夹包括子目录用树形控件组织出来,并且双击目标文件后将文件名显示在一个编辑框中。

小弟实现了该目录下的文件遍历,但是在树的组织上出了问题。
void CtestDlg::FindFile(CString Curdir)
{

CFileFind finder;

CString strWildcard(Curdir);
strWildcard += _T("*.*");

int parent = 0;
int child = 0;
int pCount = 1;
int cCount = 1;

BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking = finder.FindNextFile();

CString temp=finder.GetFilePath();
::SetDlgItemText(this->m_hWnd,IDC_EDIT,temp);
childItem[parent][child] = m_tree.InsertItem(temp, 6, 7, rootItem);
m_tree.SetItemData(childItem[parent][child], (DWORD)pCount);
parent++;
pCount++;


if (finder.IsDirectory())
{
CString path = finder.GetFilePath();


child++;
::SetDlgItemText(this->m_hWnd,IDC_EDIT,path);
childItem[parent][child] = m_tree.InsertItem(temp, 6, 7, childItem[parent][child-1]);
m_tree.SetItemData(childItem[parent][child-1], (DWORD)cCount);

cCount++;
path += _T("\\");
path += _T("*.*");
if (finder.IsDots())
continue;
FindFile(path);
}
}
finder.Close();
}

这是算法... 不知道该怎么处理这个树 希望各位大哥抽点时间帮忙看看
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrasyFman 2011-03-11
  • 打赏
  • 举报
回复
主要是要过滤掉空目录和以及其他格式的文件 只留目标格式文件...
谁能指导下啊
无水先生 2011-03-10
  • 打赏
  • 举报
回复
网上下载一些吧,向此类问题不要太纠缠了.
TandyT 2011-03-10
  • 打赏
  • 举报
回复
网上有那种类似资源管理器的 VC 的源码,直接搜索下,参考这个的实现方法

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧