//必須先引用命名空間:System.IO
//使用relateTreeView函數(shù)時 path 路徑使用本地路徑,或經(jīng)過Server.MapPath("服務器的文件路徑")解析過的路徑
//例如:relateTreeView(TreeView1, path);
public void relateTreeView(TreeView tv,string path)
{
tv.Nodes.Clear(); //清空TreeView
tv.Nodes.Add(new TreeNode()); //添加新節(jié)點
string[] pathinfo = Path.GetFullPath(path.Trim()).Split(char.Parse("\\")); //得到文件路徑數(shù)組
tv.Nodes[0].Text = pathinfo[pathinfo.Length - 1]; //得到文件夾名
tv.Nodes[0].Value = path; //得到文件夾的詳細本地路徑
tv.Nodes[0].Expanded = true; //展開根節(jié)點
tv.Nodes[0].ImageUrl = "../圖片/Root.gif"; //根節(jié)點圖片
TraversingCatalog(tv.Nodes[0], path); //調(diào)用函數(shù)
}
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) //沒有任何文件夾和文件就建立"(空白)"節(jié)點并返回false
{
TreeNode empty = new TreeNode();
empty.Text = "(空白)"; //得到文件名
empty.Value = ""; //得到文件的詳細本地路徑
empty.ImageUrl = ""; //節(jié)點圖片
//empty.Expanded = false; //折疊節(jié)點
tn.ChildNodes.Add(empty); //添加新節(jié)點
return false;
}
//循環(huán)文件夾(避免混亂,先循環(huán)文件夾)
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; //折疊節(jié)點
folderNode.ImageUrl = "../圖片/Folder.gif"; //節(jié)點圖片
tn.ChildNodes.Add(folderNode); //添加新節(jié)點
TraversingCatalog(tn.ChildNodes[folderIndex], path + "/" + folder.Name); //遞歸遍歷其它文件夾
}
//循環(huán)文件
foreach (FileInfo file in dirInfo.GetFiles("*.*")) //循環(huán)擴展名為*.*的文件
{
TreeNode fileNode = new TreeNode();
fileNode.Text = file.Name; //得到文件名
fileNode.Value = file.FullName; //得到文件的詳細本地路徑
fileNode.ToolTip = file.Name; //得到文件名
fileNode.Expanded = false; //折疊節(jié)點
fileNode.ImageUrl = "../圖片/TXT.gif"; //節(jié)點圖片
tn.ChildNodes.Add(fileNode); //添加新節(jié)點
}
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函數(shù)時 path 路徑使用本地路徑,或經(jīng)過Server.MapPath("服務器的文件路徑")解析過的路徑
//例如:relateTreeView(TreeView1, "D:\\Download");
public void relateTreeView(TreeView tv, string path)
{
tv.Nodes.Clear(); //清空TreeView
tv.Nodes.Add(new TreeNode()); //添加新節(jié)點
string[] pathinfo = Path.GetFullPath(path.Trim()).Split(char.Parse("\\")); //得到文件路徑數(shù)組
tv.Nodes[0].Text = pathinfo[pathinfo.Length - 1]; //得到文件夾名
tv.Nodes[0].Value = path; //得到文件夾的詳細本地路徑
tv.Nodes[0].Expanded = true; //展開根節(jié)點
tv.Nodes[0].ImageUrl = "../圖片/Root.gif"; //根節(jié)點圖片
TraversingCatalog(tv.Nodes[0], path); //調(diào)用函數(shù)
}
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) //沒有任何文件夾和文件就建立"(空白)"節(jié)點并返回false
{
TreeNode empty = new TreeNode();
empty.Text = "(空白)"; //得到文件名
empty.Value = ""; //得到文件的詳細本地路徑
empty.ImageUrl = ""; //節(jié)點圖片
//empty.Expanded = false; //折疊節(jié)點
tn.ChildNodes.Add(empty); //添加新節(jié)點
return false;
}
//循環(huán)文件夾(避免混亂,先循環(huán)文件夾)
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; //折疊節(jié)點
folderNode.ImageUrl = "../圖片/Folder.gif"; //節(jié)點圖片
tn.ChildNodes.Add(folderNode); //添加新節(jié)點
TraversingCatalog(tn.ChildNodes[folderIndex], path + "/" + folder.Name); //遞歸遍歷其它文件夾
}
//循環(huán)文件
foreach (FileInfo file in dirInfo.GetFiles("*.*")) //循環(huán)擴展名為*.*的文件
{
TreeNode fileNode = new TreeNode();
fileNode.Text = file.Name; //得到文件名
fileNode.Value = file.FullName; //得到文件的詳細本地路徑
fileNode.ToolTip = file.Name; //得到文件名
fileNode.Expanded = false; //折疊節(jié)點
fileNode.ImageUrl = "../圖片/TXT.gif"; //節(jié)點圖片
tn.ChildNodes.Add(fileNode); //添加新節(jié)點
}
return true;
}
protected void Page_Load(object sender, EventArgs e)
{
relateTreeView(TreeView1, "D:\\Download");
}
}
}