Hi,
I am working on a directory display page. I need to display the subfolders
and the files in that under the main folder. (Like a tree structure).
Currently the page is displaying the subfolders and the files in it, but
without the name of the main folder. Can any of u help. I am attaching the
code below.
<%@LANGUAGE="VBSCRIPT"%>
<%
Option Explicit
On Error Resume Next
' this section is optional - it just denies anonymous access
If Request.ServerVariables("LOGON_USER")="" Then
Response.Status = "401 Access Denied"
End If
' declare variables
Dim objFSO, objFolder
Dim objCollection, objItem
Dim strPhysicalPath, strTitle, strServerName
Dim strPath, strTemp
Dim strName, strFile, strExt, strAttr
Dim intSizeB, intSizeK, intAttr, dtmDate
Dim docImage
Dim strPrevPath
' declare constants
Const vbReadOnly = 1
Const vbHidden = 2
Const vbSystem = 4
Const vbVolume = 8
Const vbDirectory = 16
Const vbArchive = 32
Const vbAlias = 64
Const vbCompressed = 128
' don't cache the page
Response.AddHeader "Pragma", "No-Cache"
Response.CacheControl = "Private"
' get the current folder URL path
strTemp = Mid(Request.ServerVariables("URL"),2)
strPath = ""
Do While Instr(strTemp,"/")
strPath = strPath & Left(strTemp,Instr(strTemp,"/"))
strTemp = Mid(strTemp,Instr(strTemp,"/")+1)
Loop
strPath = "/" & strPath
strPath = left(strPath,len(strPath)-1)
If Request.QueryString("strPath") <> "" Then
strPath = Request.QueryString("strPath")
End If
' build the page title
strServerName = UCase(Request.ServerVariables("SERVER_NAME"))
strTitle = "Contents of the " & strPath & " folder"
' create the file system objects
strPhysicalPath = Server.MapPath(strPath)
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strPhysicalPath)
%>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/test.css">
<title><%=strServerName%> - <%=strTitle%></title>
</head>
<body>
<h3>Documentation</h3>
<p id=docslist>
<%
''''''''''''''''''''''''''''''''''''''''
' output the folder list
''''''''''''''''''''''''''''''''''''''''
Set objCollection = objFolder.SubFolders
If UCase(strPath) <> "/DOCS" Then
strPrevPath = strReverse(strPath)
strPrevPath = mid(strPrevPath,instr(strPrevPath,"/")+1)
strPrevPath = strReverse(strPrevPath)
%>
<img src="../images/up.gif" width="15" height="15">
<a class=docsNav href="../Docs/default_rosh.asp?strPath=<%=strPrevPath%
>"><b>Previous Directory</b></a>
<br>
<%
End if
For Each objItem in objCollection
strName = objItem.Name
'strAttr = MakeAttr(objItem.Attributes)
dtmDate = CDate(objItem.DateLastModified)
If (Left(strName,1) <> "_") and (strName <> "") Then
%>
<%
<img src="../images/Bullet1.gif" width="15" height="15">
<a class=docsNav href="../Docs/default_rosh.asp?strPath=<%=strPath & "/"
& strName%>"><%=strName%></a>
<br>
<%
%>
<%
End if
Next
''''''''''''''''''''''''''''''''''''''''
' output the file list
''''''''''''''''''''''''''''''''''''''''
Set objCollection = objFolder.Files
For Each objItem in objCollection
strName = objItem.Name
strFile = Server.HTMLEncode(Lcase(strName))
intSizeB = objItem.Size
intSizeK = Int((intSizeB/1024) + .5)
If intSizeK = 0 Then intSizeK = 1
strAttr = MakeAttr(objItem.Attributes)
strName = Ucase(objItem.ShortName)
If Instr(strName,".") Then
strExt = Right(strName,Len(strName)-Instr
(strName,"."))
Else
strExt = ""
End IF
dtmDate = CDate(objItem.DateLastModified)
If strExt = "DOC" then
docImage = "../images/Word.gif"
Else
docImage = "../images/Page.gif"
End If
If (Left(strName,1) <> "_") and (strName <> "") and ((strExt
= "DOC") Or (strExt = "TXT")) Then
%>
<img src=<%=docImage%> width="15" height="15">
<a class=docsNav href="<%=strPath%>/<%=strFile%>" target="_top"><%
=strFile%></a>
(<%=intSizeK%>K <%=FormatDateTime(dtmDate,vbShortDate)%>)
<br>
<%
End If
Next
%>
</body>
</html>
<%
'<tr>
' <td align="left"><a href="<%=strFile>"><%=strFile></a></td>
' <td align="right"><%=FormatNumber(intSizeB,0)></td>
' <td align="right"><%=intSizeK>K</td>
' <td align="left"><tt><%=strAttr></tt></td>
' <td align="left"><%=strExt></td>
' <td align="left"><%=objItem.Type></td>
' <td align="left"><%=FormatDateTime(dtmDate,vbShortDate)></td>
' <td align="left"><%=FormatDateTime(dtmDate,vbLongTime)></td>
'</tr>
Set objFSO = Nothing
Set objFolder = Nothing
' this adds the IIf() function to VBScript
Function IIf(i,j,k)
If i Then IIf = j Else IIf = k
End Function
' this function creates a string from the file atttributes
Function MakeAttr(intAttr)
MakeAttr = MakeAttr & IIf(intAttr And vbArchive,"A","-")
MakeAttr = MakeAttr & IIf(intAttr And vbSystem,"S","-")
MakeAttr = MakeAttr & IIf(intAttr And vbHidden,"H","-")
MakeAttr = MakeAttr & IIf(intAttr And vbReadOnly,"R","-")
End Function
%>