//调用 页面代码 Response.Redirect("ListReport.aspx?Path="+System.Web.HttpUtility.UrlEncode("数据", System.Text.Encoding.UTF8)); //显示页面代码 protected void Page_Load(object sender, EventArgs e) { string VirtualPath = Request.Params["Path"].ToString(); string PhysicPath = Server.MapPath("//") + VirtualPath; // Response.Write(GetFoldAll(PhysicPath)); Response.Write(GetFoldAll(PhysicPath, "abc", "")); } #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