教你如何利用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);
} 至此,一个简单的文件浏览器就做成了,当然,它还很初级,甚至不能用它打开一个文件,加另外,它也不能显示文件和目录的图标,没有进行错误处理,没有进行安全控制……它能给你的只是一个思路。
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn
