基于java仿照windows的文件浏览器,编写一个树状视图的文件浏览器

实验目的

仿照windows的文件浏览器,编写一个树状视图的文件浏览器。

要求:注意用到课本所列举的一些高级控件。

完整代码:https://download.youkuaiyun.com/download/pythonyanyan/87392509

创建实验环境


与实验二一致

实验原理


要做到文件浏览的功能,第一想法就是采用树形视图控件(TreeView)和列表视图控件(ListView)。

树形视图用于显示所有磁盘和文件夹下的内容,可以展示文件夹内包含的文件夹,而列表视图控件用于展示文件夹内具体的所有文件。

其次还需要实现的操作有

获取所有的磁盘

privatevoidEnumAllDrives(){foreach(stringMyDriveinDirectory.GetLogicalDrives()){TreeNodeRootNode=newTreeNode();RootNode.Text=MyDrive.Substring(0,MyDrive.Length-1);RootNode.Tag=MyDrive;RootNode.ImageIndex=0;RootNode.ForeColor=Color.Black;treeView1.Nodes.Add(RootNode);}}

获取选择路径下的所有文件夹

privatevoidEnumAllFile(TreeNodeParNode){stringpath=ParNode.Tag.ToString();if(path.Substring(path.Length-1)!=@"\"){path+=@"\";}if(ParNode.Nodes.Count!=0)//判断当前选中节点是否已有子目录
{return;}try{string[]Folders=Directory.GetDirectories(path);if(Folders.Length==0){return;}treeView1.BeginUpdate();TreeNodeSubNode;foreach(stringMyFolderinFolders){SubNode=newTreeNode();//取得文件名,不包含路径
SubNode.Text=MyFolder.Substring(path.LastIndexOf(@"\")+1);SubNode.ImageIndex=2;SubNode.SelectedImageIndex=1;//将路径名作为数据对象
SubNode.Tag=MyFolder;ParNode.Nodes.Add(SubNode);}treeView1.Select();treeView1.EndUpdate();}catch(System.Exceptione){MessageBox.Show("拒绝访问!");e.ToString();}}

选择节点并获取节点下文件夹

privatevoidselect(objectsender,TreeNodeMouseClickEventArgse){EnumAllFile(e.Node);}

选择节点并获取节点下所有的文件

privatevoidShow_File(objectsender,TreeNodeMouseClickEventArgse){TreeNodenewSelected=e.Node;listView1.Items.Clear();DirectoryInfonodeDirInfo=newDirectoryInfo(newSelected.Tag.ToString());ListViewItemitem=null;try{listView1.BeginUpdate();foreach(DirectoryInfodirinnodeDirInfo.GetDirectories()){item=newListViewItem(dir.Name);item.ImageIndex=2;item.SubItems.Add("Directory");item.SubItems.Add(dir.LastAccessTime.ToShortDateString());listView1.Items.Add(item);}foreach(FileInfofileinnodeDirInfo.GetFiles()){item=newListViewItem(file.Name);item.SubItems.Add("File");item.SubItems.Add(file.LastAccessTime.ToShortDateString());item.ImageIndex=3;listView1.Items.Add(item);}}//无权限访问
catch(System.ExceptionEx){Ex.ToString();MessageBox.Show("拒绝访问!");}listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);listView1.EndUpdate();}

实验结果(成果展示)


磁盘下文件显示

  1. 树形列表显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员奇奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值