ReadyGo!技术成就梦想 >> .Net技术 >> C# >> 教你如何利用c打造自己的文件浏览器

教你如何利用c打造自己的文件浏览器

ReadyGo!技术成就梦想 www.efish.cn efish 2007-10-11 19:15:20
   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 croot =new treenode;
for (int i=0;i< logicdrives.length ;i++)
{
 treenode drivesnode=new treenode(logicdrives);
 treeview.nodes .add (drivesnode);
 if (logicdrives!="a:\\" && logicdrives!="b:\\" )
  getsubnode(drivesnode,true);
}
}

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

 private void getsubnode(treenode pathname,bool isend)
{
 if(!isend)
  return; //exit this
  treenode curnode;
  directoryinfo如何利用1.10版赚钱或者破产
·如何利用路由器防止dos攻击
·如何利用sql 注入遍历目录
·如何利用apache+tomcat配置jsp开发环境?

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

更多文章 更多内容请看浏览器安全隐患及对策专题,或
相关文章
利用c编写查询ip所在区段 &middot;利用身份证号码提取个人信息&middot;利用max的displace再现真实轮胎&middot;返璞归真d..
如何使用c在发送往client的内容上.. this.page.registerstartupscript("edit","window.showmodaldialog(@#../sub_question/ques..
在c里实现datagrid的打印预览和打.. 很多人都在论坛里问,如何实现datagrid的打印预览和打印,现在我就把这方面的源代码告诉大家。这段代码也花..
c和visual basic渐行渐远之匿名类.. 在vb.net和c#第一次被发布时,很多人认为它们只是在语法和一些小的方面不一样的相同语言而已。但随着时间的..
visual c 常用快捷键 1. f12:转到定义;shift+f12:转到引用     2. f5:启动;ctrl+f5:开始执行(不调试);shift+f5:..
c实现根据域名查询ip实例 using system;using system.net;using system.net.sockets; namespace getipbydomain{ /// /// clas..
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn

分类导航
ReadyGo!技术成就梦想