protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeNode node2 = new TreeNode();
node2.Text = "根目录";
node2.Value = Server.MapPath("../");
TreeView2.Nodes.Add(node2);
getsubfile(TreeView2.Nodes[0]);
}
}
/// <summary>
/// 显示所选节点下所有的文件和文件夹,用递归显示,一次性完整显示,如果文件过多性能很差,
/// 可以每次只显示2层,然后选择显示
/// </summary>
/// <param name="tn">选择的节点</param>
/// <returns></returns>
public bool getsubfile(TreeNode tn)
{
DirectoryInfo di = new DirectoryInfo(tn.Value);
int allNum = di.GetDirectories().Length + di.GetFiles("*.*").Length;
if (allNum == 0) //如果其下的文件和文件夹为空则返回
{
return false;
}
//循环显示文件夹 每个节点只设置Name和Value,value存完整路径。
foreach (DirectoryInfo subdir in di.GetDirectories())
{
TreeNode subtd = new TreeNode();
subtd.Text = subdir.Name;
subtd.Value = subdir.FullName;
tn.ChildNodes.Add(subtd);
getsubfile(subtd);
}
//循环显示文件
foreach (FileInfo subfile in di.GetFiles())
{
if (subfile.Extension == ".aspx" || subfile.Extension == ".html" || subfile.Extension == ".gif" || subfile.Extension == ".jpg")
{
TreeNode subtd = new TreeNode();
subtd.Text = subfile.Name;
subtd.Value = subfile.FullName;
tn.ChildNodes.Add(subtd);
}
}
return true;
}