Wrox Home  
Search P2P Archive for: Go

  Return to Index  

asp_web_howto thread: directory display


Message #1 by "George Opus" <roshvarughese@y...> on Mon, 23 Apr 2001 19:53:54
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

%> 


  Return to Index