To read the article online, visit

Generating a Web Site File System Report

Have you ever found yourself wondering how many ASP pages are on your Web site? If you run a large site, chances are there are more than you realize! If your Web site can be updated by multiple people, chances are you have no clue as to how many ASP pages are on your site. I found myself wondering this question, along with others like:

  • How many GIF files are on my site?
  • What percentage of the files on my Web site are ASP pages?
  • How many KBs of JPGs are on my site?
  • What percentage of my Web site's hard drive space is taken up by ZIP files?

To answer these questions, I could use Windows's Find Files feature, searching for all files with an .asp extension in my Web directory, but if you aren't physically at the computer your Web site is hosted at, this is impossible to do. You could also use InterDev or FrontPage, but you couldn't easily determine what percentage of files were HTML files, or what percentage of the hard disk space was taken up by ASP pages. Furthermore, if your Web site is updated frequently, recalculating these numbers by hand can be cumbersome.

A somewhat similar article has already been written on 4Guys: Using the FileSystemObject for Web Site Maintenance. In that particular article, I demonstrated how to use FSO to loop through the directories in a Web site, checking to see if any files contain a particular extension, or are larger than a predetermined file size. This article demonstrates how to create a reporting system that simply provides a summary of your Web site's file system. The Using the FileSystemObject for Web Site Maintenance uses similar techniques to scrounge the Web site's file system, looking for files that violate a set of acceptable and defined rules.

Click for a larger view! In order to answer these questions for myself, I created an on-line reporting system to provide a summary of a Web site's file system. The report consists of three ASP pages. The first ASP page, ExamineWeb.asp, displays a summary of the Web site's file system. Specifically, it addresses how many files of each file type there are in the Web root directory (you can choose to have it recurse through all of the Web site's physical paths or just traverse the root directory through a checkbox on the report). It shows the percentages of each file type, as well as how many bytes or kilobytes files with the particular extension consume on the Web server. To the right you can see a snapshot of ExamineWeb.asp

Note that each file type in the table on the report contains a hyperlink. Clicking the hyperlink will take the user to DetailedReport.asp, which, for the files that contain that particular extension, lists the physical and includes a link to view the file's source code. We'll discuss DetailedReport.asp later in the article.

The ExamineWeb.asp report also contains two bar graphs, generated on the fly using ASP and HTML tables. I won't be discussing how to create the bar graphs in detail. There is already a great article on 4Guys that describes how to create static and dynamic bar graphs using HTML and ASP: Making Bar Charts Using ASP. The first graph, shown below, shows how the various extensions are represented on the Web site.

Click for a larger view!

Let's start looking at the source code for ExamineWeb.asp. The work horse of the report is a function named TraverseFolder. This function is defined by the following prototype:

sub TraverseFolder(objFolder, objDict, objSizeDict, bolRecurseDirectories)

objFolder is the Folder object through which the function should traverse through. objDict is a dictionary object, containing information on the extensions of the files in the Web site. Initially, objDict is empty. As the function steps through the contents of the folder specified by objFolder, items are added to the objDict dictionary, with the extension as the key, and the number of times the extension has been found as the value. objSizeDict is identical to objDict except for that objSizeDict's value is the total number of bytes a particular file extension has consumed on the Web server. Finally, bolRecurseDirectories is a boolean value that indicates whether or not the user would like the report to recurse all of the Web site's directories or just search the root directory.

In Part 2 we'll look at the complete source code for ExamineWeb.asp!

  • Read Part 2

  • Article Information
    Article Title: Generating a Web Site File System Report
    Article Author: Scott Mitchell
    Published Date: Wednesday, February 02, 2000
    Article URL:

    Copyright 2019 QuinStreet Inc. All Rights Reserved.
    Legal Notices, Licensing, Permissions, Privacy Policy.
    Advertise | Newsletters | E-mail Offers