广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    asp.net 获取指定文件夹下所有子目录及文件(树形)

    2018-05-07 10:24:48 次阅读 稿源:互联网
    广告
    #region 获取指定文件夹下所有子目录及文件(树形)
            /****************************************
             * 函数名称:GetFoldAll(string Path)
             * 功能说明:获取指定文件夹下所有子目录及文件(树形)
             * 参    数:Path:详细路径
             * 调用示列:
             *           string strDirlist = Server.MapPath("templates");       
             *           this.Literal1.Text = EC.FileObj.GetFoldAll(strDirlist);  
            *****************************************/
            /// <summary>
            /// 获取指定文件夹下所有子目录及文件
            /// </summary>
            /// <param name="Path">详细路径</param>
            public static string GetFoldAll(string Path)
            {

                string str = "";
                DirectoryInfo thisOne = new DirectoryInfo(Path);
                str = ListTreeShow(thisOne, 0, str);
                return str;

            }

            /// <summary>
            /// 获取指定文件夹下所有子目录及文件函数
            /// </summary>
            /// <param name="theDir">指定目录</param>
            /// <param name="nLevel">默认起始值,调用时,一般为0</param>
            /// <param name="Rn">用于迭加的传入值,一般为空</param>
            /// <returns></returns>
            public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn)//递归目录 文件
            {
                DirectoryInfo[] subDirectories = theDir.GetDirectories();//获得目录
                foreach (DirectoryInfo dirinfo in subDirectories)
                {

                    if (nLevel == 0)
                    {
                        Rn += "├";
                    }
                    else
                    {
                        string _s = "";
                        for (int i = 1; i <= nLevel; i++)
                        {
                            _s += "│ ";
                        }
                        Rn += _s + "├";
                    }
                    Rn += "<b>" + dirinfo.Name.ToString() + "</b><br />";
                    FileInfo[] fileInfo = dirinfo.GetFiles();   //目录下的文件
                    foreach (FileInfo fInfo in fileInfo)
                    {
                        if (nLevel == 0)
                        {
                            Rn += "│ ├";
                        }
                        else
                        {
                            string _f = "";
                            for (int i = 1; i <= nLevel; i++)
                            {
                                _f += "│ ";
                            }
                            Rn += _f + "│ ├";
                        }
                        Rn += fInfo.Name.ToString() + " <br />";
                    }
                    Rn = ListTreeShow(dirinfo, nLevel + 1, Rn);


                }
                return Rn;
            }

     

            /****************************************
             * 函数名称:GetFoldAll(string Path)
             * 功能说明:获取指定文件夹下所有子目录及文件(下拉框形)
             * 参    数:Path:详细路径
             * 调用示列:
             *            string strDirlist = Server.MapPath("templates");      
             *            this.Literal2.Text = EC.FileObj.GetFoldAll(strDirlist,"tpl","");
            *****************************************/
            /// <summary>
            /// 获取指定文件夹下所有子目录及文件(下拉框形)
            /// </summary>
            /// <param name="Path">详细路径</param>
            ///<param name="DropName">下拉列表名称</param>
            ///<param name="tplPath">默认选择模板名称</param>
            public static string GetFoldAll(string Path,string DropName,string tplPath)
            {
                string strDrop = "<select name=/"" + DropName + "/" id=/"" + DropName + "/"><option value=/"/">--请选择详细模板--</option>";
                string str = "";
                DirectoryInfo thisOne = new DirectoryInfo(Path);
                str = ListTreeShow(thisOne, 0, str,tplPath);
                return strDrop+str+"</select>";

            }

            /// <summary>
            /// 获取指定文件夹下所有子目录及文件函数
            /// </summary>
            /// <param name="theDir">指定目录</param>
            /// <param name="nLevel">默认起始值,调用时,一般为0</param>
            /// <param name="Rn">用于迭加的传入值,一般为空</param>
            /// <param name="tplPath">默认选择模板名称</param>
            /// <returns></returns>
            public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn,string tplPath)//递归目录 文件
            {
                DirectoryInfo[] subDirectories = theDir.GetDirectories();//获得目录

                foreach (DirectoryInfo dirinfo in subDirectories)
                {

                    Rn += "<option value=/"" + dirinfo.Name.ToString() + "/"";
                    if (tplPath.ToLower() == dirinfo.Name.ToString().ToLower())
                    {
                        Rn += " selected ";
                    }
                    Rn += ">";

                    if (nLevel == 0)
                    {
                        Rn += "┣";
                    }
                    else
                    {
                        string _s = "";
                        for (int i = 1; i <= nLevel; i++)
                        {
                            _s += "│ ";
                        }
                        Rn += _s + "┣";
                    }
                    Rn += "" + dirinfo.Name.ToString() + "</option>";


                    FileInfo[] fileInfo = dirinfo.GetFiles();   //目录下的文件
                    foreach (FileInfo fInfo in fileInfo)
                    {
                        Rn += "<option value=/"" + dirinfo.Name.ToString()+"/"+fInfo.Name.ToString() + "/"";
                        if (tplPath.ToLower() == fInfo.Name.ToString().ToLower())
                        {
                            Rn += " selected ";
                        }
                        Rn += ">";

                        if (nLevel == 0)
                        {
                            Rn += "│ ├";
                        }
                        else
                        {
                            string _f = "";
                            for (int i = 1; i <= nLevel; i++)
                            {
                                _f += "│ ";
                            }
                            Rn += _f + "│ ├";
                        }
                        Rn += fInfo.Name.ToString() + "</option>";
                    }
                    Rn = ListTreeShow(dirinfo, nLevel + 1, Rn, tplPath);


                }
                return Rn;
            }
            #endregion

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告