C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录树,点击目录树,在右边显示该目

C#编程题:在WinForm中实现类似于Windows资源管理器的功能,左边有目录树,点击目录树,在右边显示该目录下的所有文件。查看方式分:大图标、小图标、列表、详细资料... C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录树,点击目录树,在右边显示该目录下的所有文件。查看方式分:大图标、小图标、列表、详细资料等。 展开
 我来答
朝花夕实
2011-02-17 · TA获得超过387个赞
知道小有建树答主
回答量:266
采纳率:100%
帮助的人:102万
展开全部
大致是明白了你的意思:其实这个东西很简单,说明白了就是一个递归的过程而已。
例如:有一个文件夹A。
A中有C,D两个文件夹。而C,D两个文件夹中又各有两个文件,C中有E,F。D中有G,H

A就可以说是一个盘了。比如说是D盘,资源管理器的作用和表现形式,也就是说以一个树的形式吧所有的文件名字便利了出来,同时判断这个文件是不是最终的文件,而不是文件夹。如果是文件夹的话,还继续向下递归,知道到了没有文件夹再返回来。遍历第二个文件夹。

拿A文件夹来说吧。第一次遍历:查看A文件夹中有没有文件夹或者文件。
如果A文件夹中没有文件夹,只有文件。那么整个递归的过程就完了。
若是有的话,开始第二次遍历,遍历A中文件夹中的文件。
第二次遍历开始后,比如遇到的文件夹的顺序是C,D。那么在遍历到C的时候先判断C是个文件夹还是文件,若是文件夹的话,进入C中遍历C中的文件,直到遍历道C中文件的最小单元也就是文件的那一级,然后返回遍历D文件/文件夹。
这样说。不知道明白了吗?

TreeNode 对象
当然其中还有IO的引用。你自己运用把
// 添加驱动、文件夹
//这个方法就是资源管理器的核心代码,主要就是进行递归。递归的意思不知道你明白不,若是你明白,这个方法很简单,你就知道如何做了。若是不知道,先看看递归的知识
private void AddDriverInfo(TreeNode root)
{
DriveInfo[] driveInfos = DriveInfo.GetDrives();
foreach (DriveInfo info in driveInfos)
{
if (!info.Name.Contains("E")) continue;
if (info.DriveType == DriveType.Fixed)
{
TreeNode disk = new TreeNode();
disk.Text = info.Name + "(本地磁盘)";
disk.ImageIndex = 1;
disk.Name = info.Name;
// 查询是否有文件夹
AddFlodInfo(disk);
// 将添加好的节点放到TreeView
root.Nodes.Add(disk);
}
}
}
chen_767
2011-02-17 · TA获得超过220个赞
知道答主
回答量:293
采纳率:0%
帮助的人:82.6万
展开全部
目录树中的一项对应一个panel , 点到对就的目录树的一项是, 把panel设置为在最前面,和铺满窗体

就不能给点分吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tmpaccount
2011-02-17 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:99.3万
展开全部
没现成的控件,必须用到API,http://www.codeproject.com/KB/miscctrl/FileBrowser.aspx,这个控件可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式