Brettb.Com
  HOME | ABOUT ME | BIOTECHNOLOGY | ARTICLES | GALLERY | CONTACT
Search: Go
TECHNICAL ARTICLES
 ASP
 ASP.NET
 JavaScript
 Transact SQL
 Other Articles
 Software Reviews

PHOTO GALLERIES
 Canon EOS 300D Samples
 Akihabara Maids!
 More Galleries...

TRAVEL LOG
 2009: China
 2008: Tokyo
 2007: Tokyo
 2006: Hong Kong
 2005: New York City

MORE STUFF
 Search Engine Optimisation
 Build an ASP Search Engine
 My Tropical Fishtank
 Autoglass
 SQL Month Name
 SQL Get Date Today
 SQL Year Month
 Other New Stuff...

POPULAR STUFF
 Regular Expressions
 Index Server & ASP
 JavaScript Ad Rotator

Home > Articles

ASP Scripts to Determine if Specified File and Folders Exist

Here are two VBScript functions that check to see if a specified file or folder exist on the server. As such they can be used to improve error handling on ASP pages that read or write files from disk.

Checking to see if a File Exists

The first function (CheckFileExists) checks to see if a file exists. It returns 'True' if the file exists, or 'False' if it does not.

<%
Function CheckFileExists(sFileName)

Dim FileSystemObject

Set FileSystemObject = Server.CreateObject("Scripting.FileSystemObject")

If (FileSystemObject.FileExists(sFileName)) Then
CheckFileExists = True
Else
CheckFileExists = False
End If

Set FileSystemObject = Nothing

End Function
%>

The following code is an example of how to use the function:

<%
If CheckFileExists("
D:\ProductionReports\July2005\July-12-2005.xls") Then
Response.Write("
The production report for July 2005 is available")
Else
Response.Write("
The production report for July 2005 cannot be found")
End If
%>

Checking to see if a Folder Exists

The second function (CheckFolderExists) checks to see if a folder exists. It returns 'True' if the folder exists, or 'False' if it does not.

<%
Function CheckFolderExists(sFolderName)

Dim FileSystemObject

Set FileSystemObject = Server.CreateObject("Scripting.FileSystemObject")

If (FileSystemObject.FolderExists(sFolderName)) Then
CheckFolderExists = True
Else
CheckFolderExists = False
End If

Set FileSystemObject = Nothing

End Function
%>

The following code is an example of how to use the CheckFolderExists function:

<%
If CheckFolderExists("
D:\ProductionReports\July2005") Then
Response.Write("
The production reports for July 2005 are available")
Else
Response.Write("
The production reports for July 2005 are not available")
End If
%>

Problems with File Permissions

A problem with these two functions is the fact that they will check for the existence of files and folders, but do not indicate whether the user has the appropriate permissions to view them.

A way around this problem is to use the Permission Checker Component. This Component is supplied with the Internet Information Server 4.0 Resource Kit, and also with the Internet Information Services 5.0 of Windows 2000. This object has one method - HasAccess, which makes it possible to determine if the user has permission to read a specified file.

An example of using the component is below:

<%
Set PermissionChecker = Server.CreateObject("MSWC.PermissionChecker")

If PermissionChecker.HasAccess("
D:\ProductionReports\July2001\July-19-2001.xls") Then
Response.Write("
You have permission to view the July 2001 production report")
Else
Response.Write("
You do not have permission to view the July 2001 production report")
End If

Set PermissionChecker = nothing
%>

The Permission Checker Component can also be incorporated into the original CheckFileExists function:

<%
Function CheckFileExists(sFileName)

Dim FileSystemObject

Set FileSystemObject = Server.CreateObject("Scripting.FileSystemObject")

If (FileSystemObject.FileExists(sFileName)) Then
Set PermissionChecker = Server.CreateObject("MSWC.PermissionChecker")

If PermissionChecker.HasAccess(sFileName) Then
CheckFileExists = True 
End If

Set PermissionChecker = nothing
Else
CheckFileExists = False
End If

Set FileSystemObject = Nothing

End Function
%>

The function can then be used in a similar way to before:

<%
If CheckFileExists("
D:\ProductionReports\July2001\July-12-2001.xls") Then
Response.Write("
The production report for July 2001 is available")
Else
Response.Write("
The production report for July 2001 cannot be found or you do not have permission to view it")
End If
%>

Further Reading

  Site Map | Privacy Policy

All content is 1995 - 2012