KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q218606: HOWTO: Use ASP and Scripting.FileSystemObject to Create a TOC

Article: Q218606
Product(s): Internet Information Server
Version(s): 4.0,5.0
Operating System(s): 
Keyword(s): kbASP kbGrpDSASP kbDSupport kbFSO kbAudITPro kbHOWTOmaster
Last Modified: 13-MAY-2002

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Internet Information Server version 4.0 
- Microsoft Internet Information Services version 5.0 
-------------------------------------------------------------------------------

IN THIS TASK
------------

- SUMMARY

   - Creating a Table of Contents

- REFERENCES

SUMMARY
=======

This step-by-step article shows an example of how to use an Active Server Page
(ASP) to create a dynamic table of contents for a Web site that is updated
frequently. Active Server Pages makes it easier to keep Web sites up to date
without having to manually update a contents page.

Creating a Table of Contents
----------------------------

Microsoft provides programming examples for illustration only, without warranty
either expressed or implied, including, but not limited to, the implied
warranties of merchantability and/or fitness for a particular purpose. This
article assumes that you are familiar with the programming language being
demonstrated and the tools used to create and debug procedures. Microsoft
support professionals can help explain the functionality of a particular
procedure, but they will not modify these examples to provide added
functionality or construct procedures to meet your specific needs. If you have
limited programming experience, you may want to contact a Microsoft Certified
Partner or the Microsoft fee-based consulting line at (800) 936-5200. For more
information about Microsoft Certified Partners, please visit the following
Microsoft Web site:

  http://www.microsoft.com/partner/referral/

For more information about the support options that are available and about how
to contact Microsoft, visit the following Microsoft Web site:

  http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

The following ASP code is designed to create a table of contents from the files
that are listed in the "docs" subfolder. To use this example, copy the ASP code
in to a file, and then save the file as "contents.asp" (without the quotation
marks) in a folder that has at least "Script" access. To change the location of
the folder to display, change the line of code that defines the strDocsPath
variable.

  <%@LANGUAGE="VBSCRIPT"%>
  <%
  	Option Explicit	

  	Dim strDocsPath, strDocsPhysicalPath
  	Dim objFSO, objFolder, objFiles, objFile
  	Dim strName, strFile, strType, lngSize

  	' NOTE: set the following line to the folder to display
  	strDocsPath = "docs"

  	' map the folder to a physical path
  	strDocsPhysicalPath = Server.MapPath(strDocsPath)

  	' create a system file object
   	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

  	' create an object for the folder
  	Set objFolder = objFSO.GetFolder(strDocsPhysicalPath)

  %>
  <html>
  <head>
  <title>Table Of Contents</title>
  </head>

  <body>

  <h1 align="center">Table Of Contents</h1>

  <h4>Please choose the Document to view.</h4>

  <ul>
  <%
  	' create a files collection
  	Set objFiles = objFolder.Files

  	' step through the files collection
  	For Each objFile in objFiles

  		' get a file's name
  		strName = objFile.Name

  		' make it lowercase for the URL
  		strFile = Lcase(strName)

  		' get the file's type
  		strType = objFile.Type

  		' make the name a title for display
  		strName = MakeTitle(strName)

  		' get the file size in KB
  		lngSize = objFile.Size\1024

  		' output the filename and URL
  		Response.Write "<li><a href=""" & strDocsPath & "/" & strFile & """>" & strName & "</a><br>"

  		' output the file's size and type
  		Response.Write "<em>(" & lngSize & "KB " & strType & ")</em></li>" & vbCrLf
  	Next

  	' this function drops the extension from a file
  	Function MakeTitle(strTemp)
  		If InStrRev(strTemp,".") Then
  			strTemp = Left(strTemp,InStrRev(strTemp,".")-1)
  		End If
  		MakeTitle = strTemp
  	End Function
  %>
  </ul>
  </body>
  </html>

REFERENCES
==========

For more information about Microsoft Scripting Technologies, please visit the
following Microsoft Web site:

  http://msdn.microsoft.com/scripting

Additional query words: file system object

======================================================================
Keywords          : kbASP kbGrpDSASP kbDSupport kbFSO kbAudITPro kbHOWTOmaster 
Technology        : kbiisSearch kbiis500 kbiis400
Version           : :4.0,5.0
Issue type        : kbhowto

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.