本文由 [url]http://www.szaptech.com[/url] 提供转载

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 。 
界面做好了,那么怎样才能在这个界面里显示文件夹和文件呢?这需要我们添加代码来实现。 
首先引用以下名字空间: 
using System; 
using System.Drawing; 
using System.Collections; 
using System.ComponentModel; 
using System.Windows.Forms; 
using System.Data; 
using System.IO ; 
using System .Runtime .InteropServices ; 
在 mainForm_Load 事件中添加以下代码,用于在 treeView 控件中显示目录树: 
private void mainForm_Load(object sender, System.EventArgs e) 
// 获取逻辑驱动器 
string[] LogicDrives=System.IO .Directory .GetLogicalDrives(); 
TreeNode[] cRoot =new TreeNode[LogicDrives.Length]; 
for (int i=0;i< LogicDrives.Length ;i++) 

TreeNode drivesNode=new TreeNode(LogicDrives[i]); 
treeView.Nodes .Add (drivesNode); 
if (LogicDrives[i]!="A:\\" && LogicDrives[i]!="B:\\" ) 
getSubNode(drivesNode,true); 


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

if(!isEnd) 
return; //exit this 
TreeNode curNode; 
DirectoryInfo[] subDir; 
DirectoryInfo curDir=new DirectoryInfo (PathName.FullPath); 
try 

subDir=curDir.GetDirectories(); 

catch{} 
foreach(DirectoryInfo d in subDir) 

curNode=new TreeNode(d.Name); 
PathName.Nodes .Add (curNode); 
getSubNode(curNode,false); 

 
当鼠标单击目录节点左边的 + 号时,节点将展开,此时,应在 AfterExpand 事件中加入以下代码,以获取此目录下的子目录节点: 
private void treeView_AfterExpand(object sender, System.Windows.Forms.TreeViewEventArgs e) 

try 

foreach(TreeNode tn in e.Node .Nodes ) 

if (!tn.IsExpanded) 
getSubNode(tn,true); 


catch{;} 

 
当鼠标单击选中目录节点时,右边的 listView 控件应显示此目录下的文件和目录,代码如下: 
private void treeView_AfterSelect(object sender,System.Windows.Forms.TreeViewEventArgs e) 

listView.Items.Clear(); 
DirectoryInfo selDir=new DirectoryInfo(e.Node.FullPath ); 
DirectoryInfo[] listDir; 
FileInfo[] listFile; 
try 

listDir=selDir.GetDirectories(); 
listFile=selDir.GetFiles(); 

catch{} 
foreach (DirectoryInfo d in listDir) 
listView.Items .Add (d.Name,6); 
foreach (FileInfo d in listFile) 
listView.Items .Add (d.Name); 

 
至此,一个简单的文件浏览器就做成了,当然,它还很初级,甚至不能用它打开一个文件,加另外,它也不能显示文件和目录的图标,没有进行错误处理,没有进行安全控制 …… 它能给你的只是一个思路。

本文由 [url]http://www.szaptech.com[/url] 提供转载