日期:2014-05-17  浏览次数:20475 次

ASP.NET C# TreeView 遍历文件夹 发布

    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 = "../img/2.bmp"; //根节点图片
            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;  &n