C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录树,点击目录树,在右边显示该目
C#编程题:在WinForm中实现类似于Windows资源管理器的功能,左边有目录树,点击目录树,在右边显示该目录下的所有文件。查看方式分:大图标、小图标、列表、详细资料...
C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录树,点击目录树,在右边显示该目录下的所有文件。查看方式分:大图标、小图标、列表、详细资料等。
展开
3个回答
展开全部
大致是明白了你的意思:其实这个东西很简单,说明白了就是一个递归的过程而已。
例如:有一个文件夹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);
}
}
}
例如:有一个文件夹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);
}
}
}
展开全部
目录树中的一项对应一个panel , 点到对就的目录树的一项是, 把panel设置为在最前面,和铺满窗体
就不能给点分吗
就不能给点分吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没现成的控件,必须用到API,http://www.codeproject.com/KB/miscctrl/FileBrowser.aspx,这个控件可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询