搜档网
当前位置:搜档网 › C#打造自己的文件浏览器

C#打造自己的文件浏览器

本文由jvdlvcjpyf贡献
本文由febirds贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
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 https://www.sodocs.net/doc/9a206726.html,ponentModel; 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(https://www.sodocs.net/doc/9a206726.html,); 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 (https://www.sodocs.net/doc/9a206726.html,,6); foreach (FileInfo d in listFile) listView.Items .Add (https://www.sodocs.net/doc/9a206726.html,); } 至此,一个简单的文件浏览器就做成了,当然,它还很初级,甚至不能用它打开一个文件, 加另外,它也不能显示文件和目录的图标,没有进行错误处理,没有进行安全控制……它能给你 的只是一个思路。
1本文由jvdlvcjpyf贡献
本文由febirds贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
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 https://www.sodocs.net/doc/9a206726.html,ponentModel; 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(https://www.sodocs.net/doc/9a206726.html,); 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 (https://www.sodocs.net/doc/9a206726.html,,6); foreach (FileInfo d in listFile) listView.Items .Add (https://www.sodocs.net/doc/9a206726.html,); } 至此,一个简单的文件浏览器就做成了,当然,它还很初级,甚至不能用它打开一个文件, 加另外,它也不能显示文件和目录的图标,没有进行错误处理,没有进行安全控制……它能给你 的只是一个思路。

1


相关主题