C#文件浏览器制作的详细过程

开发 后端
C#文件浏览器的开发制作过程是什么呢?其实使用功能强大的C#并不是很难的,那么本文就向你介绍具体的执行过程。

C#的功能十分强大,用它可以轻松地做出属于自己的C#文件浏览器。下面简单地介绍一下C#文件浏览器的大致实现过程。其中涉及的有关这些控件的具体用法可参见C#的联机帮助。

制作C#文件浏览器需要用到几个控件:

TreeView(用于显示显示目录树);

ListView(用于显示文件和目录列表);

Splitter(用于允许用户调整TreeView和ListView的大小);

其它的如:MainMenu,ToolBar,StatusBar,ImageList等等就看你的实际需要了。

首先,新建一个C#项目(Windows应用程序),命名为MyFileView,将窗口命名为mainForm,调整主窗口大小(Size)。添加MainMenu,ToolBar,StatusBar,ImageList等控件。

然后,添加TreeView控件,命名为treeView,Dock属性设为Left,再添加Splitter控件,同样将Dock属性设为Left。***添加ListView控件,命名为listView,Dock属性设为Fill。

界面做好了,那么怎样才能在这个界面里显示文件夹和文件呢?这需要我们添加代码来实现。

C#文件浏览器之首先引用以下名字空间:

  1. using System;  
  2. using System.Drawing;  
  3. using System.Collections;  
  4. using System.ComponentModel;  
  5. using System.Windows.Forms;  
  6. using System.Data;  
  7. using System.IO ;  
  8. using System .Runtime .InteropServices ; 

在mainForm_Load事件中添加以下代码,用于在treeView控件中显示目录树:

  1. private void mainForm_Load(  
  2. object sender, System.EventArgs e)  
  3. //获取逻辑驱动器  
  4. string[] LogicDrives=System.IO .Directory .GetLogicalDrives();  
  5. TreeNode[] cRoot =new TreeNode[LogicDrives.Length];  
  6. for (int i=0;i< LogicDrives.Length ;i++)  
  7. {  
  8. TreeNode drivesNode=new TreeNode(LogicDrives[i]);  
  9. treeView.Nodes .Add (drivesNode);  
  10. if (LogicDrives[i]!="A:\\" && LogicDrives[i]!="B:\\" )  
  11. getSubNode(drivesNode,true);  
  12. }  

C#文件浏览器之创建目录树

其中,getSubNode为一方法,用于获取子目录,以创建目录树节点,参数:PathName为获取的子目录在此节点下创建子节点,参数isEnd:结束标志,true则结束。

  1. private void getSubNode(TreeNode PathName,bool isEnd)  
  2. {  
  3. if(!isEnd)  
  4. return//exit this  
  5. TreeNode curNode;  
  6. DirectoryInfo[] subDir;  
  7. DirectoryInfo curDir=new DirectoryInfo (PathName.FullPath);  
  8. try 
  9. {  
  10. subDir=curDir.GetDirectories();  
  11. }  
  12. catch{}  
  13. foreach(DirectoryInfo d in subDir)  
  14. {  
  15. curNode=new TreeNode(d.Name);  
  16. PathName.Nodes .Add (curNode);  
  17. getSubNode(curNode,false);  
  18. }  
  19. }  

当鼠标单击目录节点左边的+号时,节点将展开,此时,应在AfterExpand事件中加入以下代码,以获取此目录下的子目录节点:

  1. private void treeView_AfterExpand(  
  2. object sender,   
  3. System.Windows.Forms.TreeViewEventArgs e)  
  4. {  
  5. try 
  6. {  
  7. foreach(TreeNode tn in e.Node .Nodes )  
  8. {  
  9. if (!tn.IsExpanded)  
  10. getSubNode(tn,true);  
  11. }  
  12. }  
  13. catch{;}  

当鼠标单击选中目录节点时,右边的listView控件应显示此目录下的文件和目录,代码如下:

  1. private void treeView_AfterSelect(  
  2. object sender,System.Windows.Forms.TreeViewEventArgs e)  
  3. {  
  4. listView.Items.Clear();  
  5. DirectoryInfo selDir=  
  6. new DirectoryInfo(e.Node.FullPath );  
  7. DirectoryInfo[] listDir;  
  8. FileInfo[] listFile;  
  9. try 
  10. {  
  11. listDir=selDir.GetDirectories();  
  12. listFile=selDir.GetFiles();  
  13. }  
  14. catch{}  
  15. foreach (DirectoryInfo d in listDir)  
  16. listView.Items .Add (d.Name,6);  
  17. foreach (FileInfo d in listFile)  
  18. listView.Items .Add (d.Name);  

至此,一个简单的C#文件浏览器就做成了,当然,它还很初级,甚至不能用它打开一个文件,加另外,它也不能显示文件和目录的图。

C#文件浏览器的制作内容就向你介绍到这里,希望对你了解和学习C#文件浏览器有所帮助。

【编辑推荐】

  1. 趣味编程:C#扫雷代码
  2. 详解C#基础之委托异步
  3. 走进C#奇妙函数之ToLookup
  4. C#二维三维图形绘制工程实例宝典
  5. C#常用线程同步方法应用场景和实现原理
责任编辑:仲衡 来源: chinaitlab
相关推荐

2009-09-03 17:54:04

C#开发浏览器

2009-08-31 14:54:35

C#对象浏览器

2009-08-20 10:54:29

C#做浏览器源程序

2009-09-04 09:27:48

C#调用浏览器

2009-08-18 13:59:21

C#多标签浏览器

2009-09-03 17:49:59

C#浏览器开发

2009-09-03 18:55:08

C#判断浏览器

2009-09-03 19:00:15

C#判断浏览器

2009-09-04 10:05:16

C#调用浏览器浏览器的原理

2017-10-09 13:39:26

浏览器渲染服务器

2010-04-05 21:57:14

Netscape浏览器

2012-09-24 14:43:51

C#网络协议C

2011-03-23 10:51:35

Finereport报表制作

2010-03-05 14:43:22

Android浏览器

2009-09-02 16:20:22

C#动态创建数组

2012-03-20 11:07:08

2011-06-10 16:44:17

Qt 浏览器

2009-08-10 16:40:03

C#索引器

2012-03-19 17:25:22

2012-03-20 11:31:58

移动浏览器
点赞
收藏

51CTO技术栈公众号