急!!在TTreeView中显示出所有硬盘中的目录树

wyhufo1106 2010-04-27 10:46:35
急!!我想在TTreeView中显示出所有硬盘中的目录树,其用TTreeView1->items->addchild()一个一个加的时候老是要去一个文件夹的绝对名字,然后再判断是否其有子文件夹。这样我所的到的是一个没有办法实现的过程判断(无终止的判断)!
望各位前辈多多指教,给出实现的框架!
实现后我要是在TTreeView中点击一个文件后能够方便的显示其绝对路径!谢谢大家了!!!!!!
...全文
252 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
YeBinYe 2010-04-27
  • 打赏
  • 举报
回复
遍历实现参数用TTreeNode来传递可以实现
sczyq 2010-04-27
  • 打赏
  • 举报
回复
判断是否有子文件夹就行,只要找出一个子文件夹,就可以返回 True 了。

如果有,就在该节点下加一个 Text = "" 的子节点,反正是该节点没展开,让人看起来的有子目录就行了。

然后在展开前动作时,判断是否有一个子节点,是否 Text == "", 是就删除他,然后找出子文件夹,加入。

总之,要一层一层地读入。
周药师 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wyhufo1106 的回复:]

引用 2 楼 yeyanbin 的回复:
遍历实现参数用TTreeNode来传递可以实现


void TForm1::TreeShowDriveName(char dir[],TTreeNode*node)
//TreeShowDriveName 为TTreeView的名字{
……
[/Quote]
http://topic.csdn.net/u/20080918/10/0468393a-e32e-4521-820c-3ce68bed991b.html?60766
wyhufo1106 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sczyq 的回复:]
判断是否有子文件夹就行,只要找出一个子文件夹,就可以返回 True 了。

如果有,就在该节点下加一个 Text = "" 的子节点,反正是该节点没展开,让人看起来的有子目录就行了。

然后在展开前动作时,判断是否有一个子节点,是否 Text == "", 是就删除他,然后找出子文件夹,加入。

总之,要一层一层地读入。
[/Quote]

很复杂的,这个我不会用,那个子文件加入时我就会犯错的!!不会用!!!!
wyhufo1106 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yeyanbin 的回复:]
遍历实现参数用TTreeNode来传递可以实现
[/Quote]

void TForm1::TreeShowDriveName(char dir[],TTreeNode*node)
//TreeShowDriveName 为TTreeView的名字{
char dirdetial[1000];
strcpy(dirdetial,dir);
WIN32_FIND_DATA data;
char name[1000];
lstrcpy(name,dirdetial);
lstrcpy(name,"*.*");
HANDLE hfile = ::FindFirstFile(name, &data);
if(hfile != INVALID_HANDLE_VALUE)
{

do
{
if(lstrcmp(data.cFileName, "..") && lstrcmp(data.cFileName, ".")
&&(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
TTreeNode *node1;
node1=ShowHardDrivedetial->Items->AddChild(node, data.cFileName);
AnsiString dir2 = data.cFileName;
TreeShowDriveName(dir2.c_str(), node1);
}
else
{
ShowHardDrivedetial->Items->AddChild(node, data.cFileName);
}
}while(::FindNextFile(hfile, &data));
}
}

这是我的写的你看看;怎么也得不到一个完整的目录;
还有我如果得到了一个目录树后,我想打开选中的txt文档时,这个路径怎么取!!

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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