欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > c# >内容正文

c#

[c#(webform)] -凯发k8官方网

发布时间:2024/10/8 c# 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 [c#(webform)] - 利用递归遍历文件夹和文件存入treeview 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

主要函数:(具体实例在下面)

//必须先引用命名空间:system.io
//使用relatetreeview函数时 path 路径使用本地路径,或经过server.mappath("服务器的文件路径")解析过的路径
//例如:relatetreeview(treeview1, "d:\\download");
publicvoid relatetreeview(treeview tv,string path)
{
tv.nodes.clear();
//清空treeview
tv.nodes.add(new treenode()); //添加新节点
string[] pathinfo = path.getfullpath(path.trim()).split(char.parse("\\")); //得到文件路径数组
tv.nodes[0].text = pathinfo[pathinfo.length -1]; //得到文件夹名
tv.nodes[0].value = path; //得到文件夹的详细本地路径
tv.nodes[0].expanded =true; //展开根节点
tv.nodes[0].imageurl ="../图片/root.gif"; //根节点图片
traversingcatalog(tv.nodes[0], path); //调用函数
}

publicbool traversingcatalog(treenode tn, string path) //遍历文件夹
{
if (directory.exists(path) ==false) { returnfalse; }
directoryinfo dirinfo
=new directoryinfo(path);

int allnum = dirinfo.getdirectories().length dirinfo.getfiles("*.*").length;
if (allnum ==0) //没有任何文件夹和文件就建立"(空白)"节点并返回false
{
treenode empty
=new treenode();
empty.text
="(空白)"; //得到文件名
empty.value =""; //得到文件的详细本地路径
empty.imageurl =""; //节点图片
//empty.expanded = false; //折叠节点
tn.childnodes.add(empty); //添加新节点
returnfalse;
}

//循环文件夹(避免混乱,先循环文件夹)
int folderindex =-1; //文件夹索引
foreach (directoryinfo folder in dirinfo.getdirectories())
{
folderindex
;
treenode foldernode
=new treenode();
foldernode.text
= folder.name; //得到文件夹名
foldernode.value = folder.fullname; //得到文件夹的详细本地路径
foldernode.tooltip = folder.name; //得到文件夹名
foldernode.expanded =false; //折叠节点
foldernode.imageurl ="../图片/folder.gif"; //节点图片
tn.childnodes.add(foldernode); //添加新节点
traversingcatalog(tn.childnodes[folderindex], path "/" folder.name); //递归遍历其它文件夹
}

//循环文件
foreach (fileinfo file in dirinfo.getfiles("*.*")) //循环扩展名为*.*的文件
{
treenode filenode
=new treenode();
filenode.text
= file.name; //得到文件名
filenode.value = file.fullname; //得到文件的详细本地路径
filenode.tooltip = file.name; //得到文件名
filenode.expanded =false; //折叠节点
filenode.imageurl ="../图片/txt.gif"; //节点图片
tn.childnodes.add(filenode); //添加新节点
}
returntrue;
}

 

 

 

 

1.先添加treeview控件(名为:treeview1)

2.添加下面代码到default.aspx.cs文件中

示例:

using system;
using system.collections;
using system.configuration;
using system.data;
using system.linq;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.htmlcontrols;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.xml.linq;

using system.io;

namespace webapplication1
{
publicpartialclass _default : system.web.ui.page
{
//使用relatetreeview函数时 path 路径使用本地路径,或经过server.mappath("服务器的文件路径")解析过的路径
//例如:relatetreeview(treeview1, "d:\\download");
publicvoid relatetreeview(treeview tv, string path)
{
tv.nodes.clear();
//清空treeview
tv.nodes.add(new treenode()); //添加新节点
string[] pathinfo = path.getfullpath(path.trim()).split(char.parse("\\")); //得到文件路径数组
tv.nodes[0].text = pathinfo[pathinfo.length -1]; //得到文件夹名
tv.nodes[0].value = path; //得到文件夹的详细本地路径
tv.nodes[0].expanded =true; //展开根节点
tv.nodes[0].imageurl ="../图片/root.gif"; //根节点图片
traversingcatalog(tv.nodes[0], path); //调用函数
}

publicbool traversingcatalog(treenode tn, string path) //遍历文件夹
{
if (directory.exists(path) ==false) { returnfalse; }
directoryinfo dirinfo
=new directoryinfo(path);

int allnum = dirinfo.getdirectories().length dirinfo.getfiles("*.*").length;
if (allnum ==0) //没有任何文件夹和文件就建立"(空白)"节点并返回false
{
treenode empty
=new treenode();
empty.text
="(空白)"; //得到文件名
empty.value =""; //得到文件的详细本地路径
empty.imageurl =""; //节点图片
//empty.expanded = false; //折叠节点
tn.childnodes.add(empty); //添加新节点
returnfalse;
}

//循环文件夹(避免混乱,先循环文件夹)
int folderindex =-1; //文件夹索引
foreach (directoryinfo folder in dirinfo.getdirectories())
{
folderindex
;
treenode foldernode
=new treenode();
foldernode.text
= folder.name; //得到文件夹名
foldernode.value = folder.fullname; //得到文件夹的详细本地路径
foldernode.tooltip = folder.name; //得到文件夹名
foldernode.expanded =false; //折叠节点
foldernode.imageurl ="../图片/folder.gif"; //节点图片
tn.childnodes.add(foldernode); //添加新节点
traversingcatalog(tn.childnodes[folderindex], path "/" folder.name); //递归遍历其它文件夹
}

//循环文件
foreach (fileinfo file in dirinfo.getfiles("*.*")) //循环扩展名为*.*的文件
{
treenode filenode
=new treenode();
filenode.text
= file.name; //得到文件名
filenode.value = file.fullname; //得到文件的详细本地路径
filenode.tooltip = file.name; //得到文件名
filenode.expanded =false; //折叠节点
filenode.imageurl ="../图片/txt.gif"; //节点图片
tn.childnodes.add(filenode); //添加新节点
}
returntrue;
}

protectedvoid page_load(object sender, eventargs e)
{
relatetreeview(treeview1,
"d:\\download");
}
}
}

转载于:https://www.cnblogs.com/hcbin/archive/2010/03/11/1683240.html

总结

以上是凯发k8官方网为你收集整理的[c#(webform)] - 利用递归遍历文件夹和文件存入treeview的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图