• C#两种方式获取指定文件夹下所有子目录及文件


    C#两种方式获取指定文件夹下所有子目录及文件

    /**************************************** 
        * 函数名称: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;
        }
  • 相关阅读:
    jenkins api
    打码兔官网 验证码识别 远程答题服务 代答平台 验证码识别软件下载
    WeUI首页、文档和下载
    CMDB, 配置管理数据库, ITIL
    OpenResty Con 2015
    Ngx_lua 最佳技术实践 | UPYUN技术现场
    兔大侠整理的MySQL-Python(MySQLdb)封装类
    58同城沈剑:好的架构源于不停地衍变,而非设计-CSDN.NET
    Lua包管理工具Luarocks详解
    zz
  • 原文地址:https://www.cnblogs.com/Areas/p/2766670.html
Copyright © 2020-2023  润新知