社区
VCL组件使用和开发
帖子详情
C++ Builder 利用listview和treeview做windows资源管理器
要学递归先学递归
2012-08-17 10:16:21
递归调用FindFirstFile和FindNextFile遍历目录,然后传入listview和treeview,然后.....就没有然后了...崩溃了,各种问题,比如,节点设置啊,什么的...大牛们可不可以直接给代码~~简单一点儿就好,有基本功能就好,不需要显示图片等等。跪求,我就这么点儿分了
...全文
275
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
+实例入门陈雪飞清晰版
第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 ...
BCB6写的类似
Windows
资源管理器
源代码
1、仿
Windows
资源管理器
,浏览文件夹、文件,复制、粘贴、删除、移动文件夹和文件。 2、选中批量文件按指定模式更名。 3、创建、编辑一个文件列表库文件,可通过文件列表对实体文件进行操作。 4、加载、显示文件...
Virtual
Treeview
V4.4.3
Virtual
Treeview
是一款强大的
Windows
开发控件,主要用于GUI(图形用户界面)设计,它结合了
TreeView
和
ListView
的功能,为开发者提供了一种高效、灵活的方式来展示层次结构数据。在.NET框架或Delphi/
C++
Builder
等...
bcb中同时显示文件和文件夹的控件.docx
在
C++
Builder
中,开发一个能够同时显示文件和文件夹的控件,通常涉及到使用控件如
TreeView
或
ListView
,结合
Windows
API函数来遍历文件系统。以下是对标题和描述中涉及知识点的详细说明: 1. **TDirectoryComboBox**...
Delphi10.4 的TMSVCLUIPack
3. **数据输入与显示**:TMS VCL UI Pack 提供了多种数据输入控件,如输入框(Edit)、日期时间选择器(DateTimePicker)、下拉列表(ComboBox)、树视图(
TreeView
)和列表视图(
ListView
),便于用户操作数据。...
VCL组件使用和开发
604
社区成员
13,457
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章