SNB Solutions - Baja California Software Company
Welcome Guest Search | Active Topics | Log In | Register

Tag as favorite
ASP.NET directory listing
stoian_bycovich
#1 Posted : Friday, February 26, 2010 2:46:11 PM

Rank: Administration

Medals:

Groups: Administrators
Joined: 1/2/2010
Posts: 79
Points: 10,237
Location: Cabo San Lucas

Thanks: 0 times
Was thanked: 0 time(s) in 0 post(s)
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

Next

mainFiles = 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)

Next

End 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 If

End 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
Best regards,
Stoyan Bukovich
Executive manager
SNB Solutions

Cell.: +52 6241 616969
E-mail: s.bucovich@snb-bg.com
Web: www.snb-bg.com
Sponsor  
 
Eannouncements.net SNB Solutions Eanuncios.net

Eannouncements.net the place for your announcement.

SNB Solutions - Software and computing services company.

Eanuncios.net el lugar para su anuncio.

Users browsing this topic
Guest
Tag as favorite
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.