社区
VCL组件使用和开发
帖子详情
C++ Builder 利用listview和treeview做windows资源管理器
要学递归先学递归
2012-08-17 10:16:21
递归调用FindFirstFile和FindNextFile遍历目录,然后传入listview和treeview,然后.....就没有然后了...崩溃了,各种问题,比如,节点设置啊,什么的...大牛们可不可以直接给代码~~简单一点儿就好,有基本功能就好,不需要显示图片等等。跪求,我就这么点儿分了
...全文
400
12
打赏
收藏
C++ Builder 利用listview和treeview做windows资源管理器
递归调用FindFirstFile和FindNextFile遍历目录,然后传入listview和treeview,然后.....就没有然后了...崩溃了,各种问题,比如,节点设置啊,什么的...大牛们可不可以直接给代码~~简单一点儿就好,有基本功能就好,不需要显示图片等等。跪求,我就这么点儿分了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
要学递归先学递归
2012-08-17
打赏
举报
回复
罢了罢了,感谢各位大牛们的关注,我还是自己努力看看基础吧
我不懂电脑
2012-08-17
打赏
举报
回复
BCB有个shell控件,需要自己在example目录找到装上,可以用。
要学递归先学递归
2012-08-17
打赏
举报
回复
这个是delphi的,没学过,虽然跟CBuilder很像,可是如果参考这个代码,估计会出很多问题吧...
[Quote=引用 9 楼 的回复:]
还有这个
http://www.websnap123.com/show-TVRReU56QXg=.html
[/Quote]
缘中人
2012-08-17
打赏
举报
回复
还有这个
http://www.websnap123.com/show-TVRReU56QXg=.html
缘中人
2012-08-17
打赏
举报
回复
参考这个例子吧
http://topic.csdn.net/u/20100427/10/716568c8-99ce-4639-bcc3-802e5413f8bd.html
http://www.myexception.cn/c-builder/360535.html
http://www.myexception.cn/c-builder/250922.html
要学递归先学递归
2012-08-17
打赏
举报
回复
什么叫不是向上退的目录,还有就是怎么加treeview的节点,怎么用listview= =!so many question...[Quote=引用 6 楼 的回复:]
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)判断是目录而不是文件
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )//不是向上退的目录
else if( strcmp(fd.cFileName, ".") &……
[/Quote]
缘中人
2012-08-17
打赏
举报
回复
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)判断是目录而不是文件
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )//不是向上退的目录
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
要学递归先学递归
2012-08-17
打赏
举报
回复
遍历的函数代码是这个:
void __fastcall TForm1::FindFileInDir(char* rootDir, char* strRet, int n)
{
if(n == 0)
{
i = 0;
Node[0] = NULL;
}
char fname[MAC_FILENAMELENOPATH];
ZeroMemory(fname, MAC_FILENAMELENOPATH);
WIN32_FIND_DATA fd;
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
HANDLE hSearch;
char filePathName[256];
char tmpPath[256];
ZeroMemory(filePathName, 256);
ZeroMemory(tmpPath, 256);
strcpy(filePathName, rootDir);
BOOL bSearchFinished = FALSE;
if( filePathName[strlen(filePathName) -1] != '\\' )
{
strcat(filePathName, "\\");
}
strcat(filePathName, "*.*");
hSearch = FindFirstFile(filePathName, &fd);
ShowMessage(filePathName);
//Is directory
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
Node[i+1] = ptv -> Items -> AddChild(Node[i], fd.cFileName);
i++;
n++;
FindFileInDir(tmpPath, strRet, n);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
sprintf(fname, "%s\n", fd.cFileName);
strcat(strRet + strlen(strRet) , fname);
}
while( !bSearchFinished )
{
if( FindNextFile(hSearch, &fd) )
{
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, "\\");
strcat(tmpPath, fd.cFileName);
Node[i+1] = ptv -> Items -> Add(Node[i], fd.cFileName);
i++;
n++;
FindFileInDir(tmpPath, strRet, n);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
sprintf(fname, "%s\n", fd.cFileName);
strcat(strRet + strlen(strRet) , fname);
}
}
else
{
if( GetLastError() == ERROR_NO_MORE_FILES ) //Normal Finished
{
bSearchFinished = TRUE;
}
else
bSearchFinished = TRUE; //Terminate Search
}
}
FindClose(hSearch);
}[Quote=引用 2 楼 的回复:]
现成的没有,你的问题代码贴出来看看吧
[/Quote]
fxworld
2012-08-17
打赏
举报
回复
参考bcb6的Shell Control组件,在bcb6的Example中找一下。
要学递归先学递归
2012-08-17
打赏
举报
回复
Oh, shit! 怎么没人来...好吧,我说具体点儿:
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
这句代码和
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
这句代码分别表示什么意思。还有如何向listview中添加遍历得到的文件夹和文件以及如何让它和treeview关联,比如点击treeview中的一个文件夹,listview就能显示该文件夹中的东东~大牛们,help...
缘中人
2012-08-17
打赏
举报
回复
现成的没有,你的问题代码贴出来看看吧
要学递归先学递归
2012-08-17
打赏
举报
回复
不要无人问津啊~我已经纠结一个星期了,help...
C++
Builder
xe 关于
ListView
的自然排序功能排序效果与
Windows
资源管理器
相同
NaturalCompare函数实现自然排序算法,处理包含数字和字母的字符串。该函数首先跳过前导空格,然后逐字符比较:当遇到数字时提取完整数字进行数值比较;字母则进行不区分大小写的比较;特殊字符直接按ASCII值比较。若字符串长度不同,较短字符串排序靠前。该算法适用于99-150、100-150、101-150等混合字符的排序场景,提供更符合人类直觉的排序结果。
在
WINDOWS
SERVER 2008 X86 SP2 上安装
C++
BUILDER
6 SP4
1、以超级用户登录(习惯了超户的工作方式,其它用户方式未试过能不能安装)。 2、按常规方法安装、打HELP和SP4补丁,再补上ILINK32.EXE和ILINK32.DLL的最新补丁。 3、注册成功后,起动
C++
BUILDER
6的主程序,前面还好好的,紧跟着就提示dclite60.bpl组件调用失败,提示是内存访问违规,但是点了错误提示两次后,
老电脑的
Windows
11救星:tiny11
builder
精简系统终极指南
还在为老旧电脑运行
Windows
11而发愁吗?微软的硬件要求让无数性能尚可的设备被挡在门外,但今天我要介绍的这款开源神器——tiny11
builder
,将彻底改变这一局面!这个基于PowerShell的自动化脚本工具,能够帮你打造一个精简高效的
Windows
11系统,让老旧设备重获新生,运行速度提升40%以上! ## 传统升级方案的痛点与全新解决方案 你是否遇到过这样的情况:一台配置尚可的
如何用tiny11
builder
为老旧电脑打造极速
Windows
11系统
还在为
Windows
11的系统要求发愁吗?你的老旧电脑是不是卡在TPM 2.0和4GB内存的门槛上无法升级?别担心,今天我要给你介绍一个神奇的解决方案——**tiny11
builder
**,这是一个开源工具,能帮你创建精简版的
Windows
11镜像,让你的旧电脑也能流畅运行最新的操作系统! ## 🚀 什么是tiny11
builder
? **tiny11
builder
**是一套PowerS
Tiny11
Builder
:让你的旧电脑也能流畅运行
Windows
11的终极方案
还在为老旧电脑运行
Windows
11卡顿而烦恼吗?Tiny11
Builder
是你的救星!这个开源项目通过PowerShell脚本自动化创建精简版
Windows
11镜像,让老旧设备也能流畅运行最新操作系统。本文将为你详细介绍如何
利用
Tiny11
Builder
为电脑注入新生机。 ## 🎯 为什么选择Tiny11
Builder
? ### 解决
Windows
11的"肥胖症" 现代
Windows
VCL组件使用和开发
604
社区成员
13,456
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章