[c#(webform)] -尊龙游戏旗舰厅官网
尊龙游戏旗舰厅官网
收集整理的这篇文章主要介绍了
[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
总结
以上是尊龙游戏旗舰厅官网为你收集整理的[c#(webform)] - 利用递归遍历文件夹和文件存入treeview的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: