The following code demonstrates how to display a directory structure using a TreeView Control in ASP.NET.


Step1: Drag Treeview Control from the ASP.NET toolbox.



<asp:TreeView Id="MyTree"

PathSeparator = "|"

ExpandDepth="0"

runat="server" ImageSet="Arrows"

AutoGenerateDataBindings="False">

<SelectedNodeStyle Font-Underline="True"
HorizontalPadding="0px" VerticalPadding="0px" ForeColor="#5555DD"></SelectedNodeStyle>

<NodeStyle VerticalPadding="0px" Font-Names="Tahoma" Font-Size="10pt"

HorizontalPadding="5px" ForeColor="#000000" NodeSpacing="0px"></NodeStyle>
<ParentNodeStyle Font-Bold="False" />

<HoverNodeStyle Font-Underline="True" ForeColor="#5555DD"></HoverNodeStyle>

</asp:TreeView>


Step 2:

Write the following code in .cs file .........


using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Media;
using System.Drawing;
using System.Drawing.Imaging;

public partial class CreateFolder : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

if (Page.IsPostBack == false)
{
System.IO.DirectoryInfo RootDir = new System.IO.DirectoryInfo(Server.MapPath("~/"));
// output the directory into a node
TreeNode RootNode = OutputDirectory(RootDir, null);

// add the output to the tree

MyTree.Nodes.Add(RootNode);

}

}



TreeNode OutputDirectory(System.IO.DirectoryInfo directory, TreeNode parentNode)
{
// validate param
if (directory == null) return null;

// create a node for this directory

TreeNode DirNode = new TreeNode(directory.Name);

// get subdirectories of the current directory

System.IO.DirectoryInfo[] SubDirectories = directory.GetDirectories();

// OutputDirectory(SubDirectories[0], "Directories");

// output each subdirectory

for (int DirectoryCount = 0; DirectoryCount < SubDirectories.Length; DirectoryCount++)

{

OutputDirectory(SubDirectories[DirectoryCount], DirNode);

}

// output the current directories file

System.IO.FileInfo[] Files = directory.GetFiles();

for (int FileCount = 0; FileCount < Files.Length; FileCount++)

{

DirNode.ChildNodes.Add(new TreeNode(Files[FileCount].Name));

} // if the parent node is null, return this node

// otherwise add this node to the parent and return the parent

if (parentNode == null)

{

return DirNode;

}

else

{

parentNode.ChildNodes.Add(DirNode);

return parentNode;
}
}

}


Run your website.....