发新话题
打印

教你如何利用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。
  界面做好了,那么怎样才能在这个界面里显示文件夹和文件呢?这需要我们添加代码来实现。
  首先引用以下名字空间:
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控件中显示目录树:
** 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);
 treeView.Nodes .Add (drivesNode);
 if (LogicDrives!="A:\\"

TOP

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


** 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控件应显示此目录下的文件和目录,代码如下:
** 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);
}
  至此,一个简单的文件浏览器就做成了,当然,它还很初级,甚至不能用它打开一个文件,加另外,它也不能显示文件和目录的图标,没有进行错误处理,没有进行安全控制……它能给你的只是一个思路。

TOP

发新话题