社区
VCL组件使用和开发
帖子详情
C++ Builder 利用listview和treeview做windows资源管理器
要学递归先学递归
2012-08-17 10:16:21
递归调用FindFirstFile和FindNextFile遍历目录,然后传入listview和treeview,然后.....就没有然后了...崩溃了,各种问题,比如,节点设置啊,什么的...大牛们可不可以直接给代码~~简单一点儿就好,有基本功能就好,不需要显示图片等等。跪求,我就这么点儿分了
...全文
289
12
打赏
收藏
C++ Builder 利用listview和treeview做windows资源管理器
递归调用FindFirstFile和FindNextFile遍历目录,然后传入listview和treeview,然后.....就没有然后了...崩溃了,各种问题,比如,节点设置啊,什么的...大牛们可不可以直接给代码~~简单一点儿就好,有基本功能就好,不需要显示图片等等。跪求,我就这么点儿分了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
+实例入门陈雪飞清晰版
第1章 制作一个简单的计算器 1.1 基础知识 1.1.1
C++
Builder
的集成开发环境 1.1.2
C++
Builder
控件的使用方法 1.1.3 有关计算器制作中用到控件的介绍 1.2 编程思路 1.3 操作步骤 1.4 创意与超越 1,5 本章小结 第2章 单窗口文本编辑器 2.1 基础知识 2.1.1 TOpenDialog控件和TsaveDialog控件的属性 2.1.2 控件的方法和事件 2.2 编程思路 2.3 操作步骤 2.4 创意与超越 2.5 本章小结 第3章 MDI窗体应用程序 3.1 基础知识 3.1.1 主窗体和子窗体间的通讯 3.1.2 主菜单和子菜单的融合 3.1.3 Dialog控件系列介绍 3.2 编程思路 3.3 操作步骤 3.4 创意与超越 3.5 本章小结 第4章 剪贴板查看器 4.1 基础知识 4.1.1 控件的属性设置 4.1.2 事件处理 4.2 编程思路 4.3 操作步骤 4.4 创意与超越 4.5 本章小结 第5章 我的
资源管理器
5.1 基础知识 5.1.1
TreeView
控件 5.1.2
ListView
控件 5.2 编程思路 5.3 操作步骤 5.4 创意与超越 5.5 本章小结 第6章 系统文件浏览器 6.1 基础知识 6.1.1 注册表和 INI文件简介 6.1.2 TRegistryIniFile的属性和方法 6.2 编程思路 6.3 操作步骤 6.4 创意与超越 6.5 本章小结 第7章 绘制一个简单的图表 7.1 基础知识 7.2 编程思路 7.3 操作步骤 7.4 创意与超越 7.5 本章小结 第8章 图像编辑器 8.1 基础知识 8.2 编程思路 8.3 操作步骤 8.4 创意与超越 8.5 本章小结 第9章 制作一个简单的播放器 9.1 基础知识 9.1.1 AutoEnable属性 9.1.2 Display属性 9.1.3 Fileplayer属性 9.1.4 FileName属性 9.1.5 DeviceType属性 9.1.6 EnabledButton属性 9.2 编程思路 9.3 操作步骤 9.4 创意与超越 9.5 本章小结 第10章 二维图像处理器 10.1 基础知识 10.1.1 OpenGL的工作顺序 10.1.2 程序的基本结构 10.2 编程思路 10.2.1 OpenGL应用程序库 10.2.2 OpenGL对
windows
系统的扩展库函数 10.2.3 OpenGL辅助函数库 10.3 操作步骤 10.4 创意与超越 10.5 本章小结 第11章 二人对战五子棋 11.1 基础知识 11.1.1 游戏界面设计 11.1.2 游戏所使用的数据结构和算法 11.1.3 TDrawGrid组件的介绍 11.1.4 TTimer组件的使用 11.2 编程思路 11.2.1 TDrawGrid的应用 11.2.2 计时功能 11.3 操作步骤 11.4 创意与超越 11.4.1 数据结构 11.4.2 程序流程 11.5 本章小结 第12章 学生资料管理程序 12.1 基础知识 12.1.1 数据库基本知识 12.1.2 访问数据库的基本途径 12.2 编程思路 12.3 操作步骤 12.4 创意与超越 12.4.1 中文数据库的字段名 12.4.2 中文输入法的自动切换 12.4.3 对TDBNavigator组件的修改 12.5 本章小节 第13章 高级学生资料管理程序 13.1 基础知识 13.1.1 TQuery组件与TTable的比较 13.1.2 SQL语言简介 13.1.3 TDBChart组件的使用 13.2 编程思路 13.3 操作步骤 13.4 创意与超越 13.5 本章小结 第14章 多媒体数据库的开发 14.1 基础知识 14.1.1 多媒体数据的特点及处理方法 14.1.2 以文件方式保存和播放多媒体数据 14.1.3 以数据方式保存和播放多媒体数据 14.1.4 TOleContainer组件的简单介绍 14.1.5
利用
QuickReport组件制作中文数据报表 14.2 编程思路 14.3 操作步骤 14.4 创意与超越 14.5 本章小结 第15章 简单的CGI程序 15.1 基础知识 15.1.1 TWebModule控件 15.1.2 TPageProducer、TQueryTableProducer和TDataSetTableProducer控件 15.1.3 超文本标识语言 15.1.4 CGI的工作原理 15.2 编程思路 15.3 操作步骤 15.4 创意与超越 15.5 本章小结 第16章 网页浏览 16.1 基础知识 16.1.1 什么是WWW 16.1.2 什么是URL 16.1.3 打开URL和连接 16.1.4 在页面之间跳转 16.1.5 获得浏览器的状态信息 16.2 编程思路 16.3 操作步骤 16.4 创意与超越 16.5 本章小结 第17章 电子邮件客户端程序 17.1 基础知识 17.1.1 POP3协议 17.1.2 SMTP协议 17.2 编程思路 17.3 操作步骤 17.4 创意与超越 17.5 本章小结 第18章 网上聊天程序 18.1 基础知识 18.1.1 TServerSocket控件的属性、方法和事件 18.1.2 TClientSocket控件的属性、方法和事件 18.1.3 处理异常 18.2 编程思路 18.3 操作步骤 18.4 创意与超越 18.5 本章小结 第19章 FTP客户端 19.1 基础知识 19.2 编程思路 19.3 操作步骤 19.4 创意与超越 19.5 本章小结 附录A
C++
语法基础 A.1
C++
的基本数据类型及常量、变量 A.1.1 常用的基本数据类型 A.1.2 变量的定义 A.1.3 常量的定义 A.2 操作符、表达式及语句 A.2.1 操作符 A.2.2 表达式 A.2.3 语句 A.3 数组 A.3.1 数组的定义 A.3.2 初始化数组 A.3.3 数组元素的访问 A.3.4 二维数组 A.4 指针 A.4.1 指针的定义 A.4.2 指针运算 A.4.3 指针与数组
BCB6写的类似
Windows
资源管理器
源代码
C++
Builder
6编写的小软件“文档小秘书ASEC”,下载包括完整的工程代码,有以下功能: 1、仿
Windows
资源管理器
,浏览文件夹、文件,复制、粘贴、删除、移动文件夹和文件。 2、选中批量文件按指定模式更名。 3、创建、编辑一个文件列表库文件,可通过文件列表对实体文件进行操作。 4、加载、显示文件关联的图标资源。 5、读取文件创建日期时间,并格式化为字符串。 6、颜色字符串转换为TColor。 7、
TreeView
、
ListView
控件使用。 8、SHGetFileInfo等API函数使用。
Virtual
Treeview
V4.4.3
一套很好用的控件,把
treeview
与
listview
结合起来 最主要的是支持checkbox,弥补了普通树不能选择的缺点
bcb中同时显示文件和文件夹的控件.docx
。。。
Delphi10.4 的TMSVCLUIPack
TMS UI工具包TMS
VCL组件使用和开发
604
社区成员
13,457
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章