您的位置:首页 > 其它

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

2008-08-29 08:29 726 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: