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

2016-02-19 16:56 47 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是C#打造自己的文件浏览器,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

  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。如下图所示。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

  首先引用以下名字空间:

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 thisTreeNode 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控件应显示此目录下的文件和目录,代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)
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);}

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

来源:https://www.tulaoshi.com/n/20160219/1613608.html

延伸阅读
ES文件浏览器怎么隐藏文件   ES文件浏览器怎么隐藏文件?手机里都有一些比较隐私的东西不想给别人看见要怎么办?最好的办法当然就是把该文件隐藏啦,那么,小编今天就来教大家ES文件浏览器隐藏文件方法,希望对大家有所帮助。 1)打开ES文件浏览器,点击上方,然后选择需要隐藏的文件所在位置。 2)长按需要隐藏的文件,在...
标签: 浏览器
UC浏览器下载的文件在哪   方法一: 步骤一:在UC浏览器电脑机界面最下方的向下箭头↓,即可打开下载管理器。 步骤二:在管理器界面,若您曾经下载了文件,点击文件右侧的文件夹即可打开所有文件所属的的文件夹。 步骤三:文件都在里面呢! 方法二: 就是选择一个文件进行下载操作,但是并不...
手机QQ浏览器下载的文件在哪里 手机QQ浏览器下载的文件存放   手机QQ浏览器凭借不俗的性能和简介清爽的操作体验拥有不少的用户,不少用户在百度上搜索手机QQ浏览器如何查看刚才下载的文件,表示找不到刚刚下载的文件在哪里?这里百事网介绍三种查看手机QQ浏览器查看下载文件的详细方法,希望对大家有用。 手机QQ查看下载文件方法...
标签: 浏览器 Web开发
Netscape Navigator 9 Netscape Navigator 9 (Beta 1) 于 2007 年 6 月发布。它基于 Mozilla Firefox 2。 Navigator 9 中的一些新特性:Mozilla 特性 由于 Navigator 9 基于 Mozilla,它拥有所有最新的 Mozilla 特性。 URL 纠错 Navigator 9 会自动校正 URL。 Link Pad 一个新的 sidebar 特性,允许在不搞乱书签的情况下保存新闻日后访问...
标签: Web开发
Firefox 是由 Mozilla 开发的开源 web 浏览器。 Firefox 是什么? Firefox 是一款免费的可用于 Windows、Linux 和 Mac 的开源 web 浏览器。它小巧快速,可提供弹窗阻止和标签式浏览等许多新特性。 Firefox 基于 Mozilla 代码,是标准兼容性最好的浏览器之一。 Firefox 可用于 Windows 98、Windows 2000、Windows XP、Mac OS X 以及 Linu...

经验教程

236

收藏

96
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部