[ASP.NET(C#)] - 利用递归遍历文件夹和文件存入TreeView

fengyahui 贡献于2011-06-10

作者 Windows 用户  创建于2011-06-02 12:58:00   修改者Windows 用户  修改于2011-06-02 13:00:00字数4088

文档摘要:
关键词:

[ASP.NET(C#)] - 利用递归遍历文件夹和文件存入TreeView 主要函数:(具体实例在下面) //必须先引用命名空间:System.IO //使用relateTreeView函数时 path 路径使用本地路径,或经过Server.MapPath("服务器的文件路径")解析过的路径 //例如:relateTreeView(TreeView1, "D:\\Download"); public void 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); //调用函数 } public bool TraversingCatalog(TreeNode tn, string path) //遍历文件夹 { if (Directory.Exists(path) == false) { return false; } 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); //添加新节点 return false; } //循环文件夹(避免混乱,先循环文件夹) 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); //添加新节点 } return true; } 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 { public partial class _Default : System.Web.UI.Page { //使用relateTreeView函数时 path 路径使用本地路径,或经过Server.MapPath("服务器的文件路径")解析过的路径 //例如:relateTreeView(TreeView1, "D:\\Download"); public void 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); //调用函数 } public bool TraversingCatalog(TreeNode tn, string path) //遍历文件夹 { if (Directory.Exists(path) == false) { return false; } 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); //添加新节点 return false; } //循环文件夹(避免混乱,先循环文件夹) 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); //添加新节点 } return true; } protected void Page_Load(object sender, EventArgs e) { relateTreeView(TreeView1, "D:\\Download"); } } }

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 3 人已下载

下载文档