日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

發(fā)布時間:2024/10/8 C# 139 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [C#(WebForm)] - 利用递归遍历文件夹和文件存入TreeView 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

主要函數(shù):(具體實例在下面)

//必須先引用命名空間:System.IO
//使用relateTreeView函數(shù)時 path 路徑使用本地路徑,或經(jīng)過Server.MapPath("服務(wù)器的文件路徑")解析過的路徑
//例如:relateTreeView(TreeView1, "D:\\Download");
publicvoid 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ù)
}

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) //沒有任何文件夾和文件就建立"(空白)"節(jié)點并返回false
{
TreeNode empty
=new TreeNode();
empty.Text
="(空白)"; //得到文件名
empty.Value =""; //得到文件的詳細本地路徑
empty.ImageUrl =""; //節(jié)點圖片
//empty.Expanded = false; //折疊節(jié)點
tn.ChildNodes.Add(empty); //添加新節(jié)點
returnfalse;
}

//循環(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é)點
}
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函數(shù)時 path 路徑使用本地路徑,或經(jīng)過Server.MapPath("服務(wù)器的文件路徑")解析過的路徑
//例如:relateTreeView(TreeView1, "D:\\Download");
publicvoid 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ù)
}

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) //沒有任何文件夾和文件就建立"(空白)"節(jié)點并返回false
{
TreeNode empty
=new TreeNode();
empty.Text
="(空白)"; //得到文件名
empty.Value =""; //得到文件的詳細本地路徑
empty.ImageUrl =""; //節(jié)點圖片
//empty.Expanded = false; //折疊節(jié)點
tn.ChildNodes.Add(empty); //添加新節(jié)點
returnfalse;
}

//循環(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é)點
}
returntrue;
}

protectedvoid Page_Load(object sender, EventArgs e)
{
relateTreeView(TreeView1,
"D:\\Download");
}
}
}

轉(zhuǎn)載于:https://www.cnblogs.com/hcbin/archive/2010/03/11/1683240.html

總結(jié)

以上是生活随笔為你收集整理的[C#(WebForm)] - 利用递归遍历文件夹和文件存入TreeView的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。