ASP.NET directory listing

In this post i am going to demonstrate how you could achive directory listing.

aspx page:

<%

@ Page Language="VB"

AutoEventWireup="false"

CodeFile="DirectoryListing.aspx.vb"

Inherits="DirectoryListing" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<

html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">

<

title></title></head>

<

body><form id="form1" runat="server">

<

div>

<

asp:TreeView id="treeImages" runat="server" NodeIndent="10" NodeStyle-HorizontalPadding="5" /> </div>

</

form></body> </html>

 

and code behind:

#Region

" Imports "

Imports

System.IO#End Region Partial Class DirectoryListing

Inherits System.Web.UI.Page

#Region

" Functions "

Private Function GetFileSysEntryName(ByVal fullName As String) As StringDim index As Integer = fullName.LastIndexOf("\")

Return fullName.Substring(index + 1)End Function #End Region

#Region

" Private Method "

Private Sub LoadTreeImages()

Const FILE As String = "images/image.png"

Const FOLDER As String = "images/folder.png"Dim path As String = Server.MapPath("images")

Dim fileList, mainFiles As String()Dim dirList, subdirList, subSeconddirList As String() Dim dirNode, fileNode, dNode, dFileNode, secondNode As TreeNode

Dim fName, dirName, subdirName, subSeconddirName As String

treeImages.Nodes.Clear()

dirList = Directory.GetDirectories(Server.MapPath("images/"))

 For Each dirEntry As String In dirList

If dirEntry = path Then Continue For

dirName = GetFileSysEntryName(dirEntry)

dirNode = New TreeNode(dirName)

dirNode.SelectAction = TreeNodeSelectAction.Expand

dirNode.Collapse()

dirNode.ImageUrl = FOLDER

treeImages.Nodes.Add(dirNode)

 subdirList = Directory.GetDirectories(Server.MapPath("images/" & dirName))For Each subdirFolder As String In subdirList

subdirName = GetFileSysEntryName(subdirFolder)

dNode = New TreeNode(subdirName)

dNode.SelectAction = TreeNodeSelectAction.Expand

dNode.Collapse()

dNode.ImageUrl = FOLDER

dirNode.ChildNodes.Add(dNode)

 subSeconddirList = Directory.GetDirectories(Server.MapPath("images/" & dirName & "/" & subdirName))For Each subSeconddirFolder As String In subSeconddirList

subSeconddirName = GetFileSysEntryName(subSeconddirFolder)

secondNode = New TreeNode(subSeconddirName)

secondNode.SelectAction = TreeNodeSelectAction.Expand

secondNode.Collapse()

secondNode.ImageUrl = FOLDER

dNode.ChildNodes.Add(secondNode)

fileList = Directory.GetFiles(subSeconddirFolder)

For Each subSecondfileEntry As String In fileList

fName = GetFileSysEntryName(subSecondfileEntry)

dFileNode = New TreeNode(fName)

dFileNode.Target =

"_blank"dFileNode.NavigateUrl = "~/images/" & dirName & "/" & subdirName & "/" & subSeconddirName & "/" & fName

dFileNode.SelectAction = TreeNodeSelectAction.Select

dFileNode.ImageUrl = FILE

secondNode.ChildNodes.Add(dFileNode)

Next

Next

fileList = Directory.GetFiles(subdirFolder)

For Each subfileEntry As String In fileList

fName = GetFileSysEntryName(subfileEntry)

dFileNode = New TreeNode(fName)

dFileNode.Target =

"_blank"dFileNode.NavigateUrl = "~/images/" & dirName & "/" & subdirName & "/" & fName

dFileNode.SelectAction = TreeNodeSelectAction.Select

dFileNode.ImageUrl = FILE

dNode.ChildNodes.Add(dFileNode)

Next

Next

fileList = Directory.GetFiles(dirEntry)

For Each fileEntry As String In fileList

fName = GetFileSysEntryName(fileEntry)

fileNode = New TreeNode(fName)

fileNode.Target =

"_blank"fileNode.NavigateUrl = "~/images/" & dirName & "/" & fName

fileNode.SelectAction = TreeNodeSelectAction.Select

fileNode.ImageUrl = FILE

dirNode.ChildNodes.Add(fileNode)

Next

NextmainFiles = Directory.GetFiles(Server.MapPath("images/"))For Each files As String In mainFiles

fName = GetFileSysEntryName(files)

fileNode = New TreeNode(fName)

fileNode.Target =

"_blank"fileNode.NavigateUrl = "~/images/" & fName

fileNode.ImageUrl = FILE

treeImages.Nodes.Add(fileNode)

NextEnd Sub #End Region

#Region

" Page Events "Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not IsPostBack Then

LoadTreeImages()

End IfEnd Sub #End Region

End

Class

Where I did directory structure image and two files in it that I am using for showing in the tree view files and folders (folder.png and image.png). This example doesn't do full directory listing. It just does a few level deeper.

Hope it helps

 

2 Comments

Comments have been disabled for this content.