Reading a file using the FileSystemObject

The FileSystemObject makes it easy for ASP programmers to perform file and folder operations such as reading a file. First, we need to create an instance of the FileSystemObject:

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

Next, you can check to see if the file exists, using the FileExists method:

If objFSO.FileExists("C:\inetpub\wwwroot\mysite\thefile.txt") Then
    'file exists
End If

Note that we have provided a full path for the FileExists item. If you want to reference a file relative to your script, then you need to use the Server.MapPath method. For example, to check if the file above exists from a script in C:\inetpub\wwwroot\mysite\, you can use

If objFSO.FileExists(Server.MapPath("thefile.txt")) Then
    'file exists
End If

Next, we can go about accessing the file. We do this by calling the OpenTextFile method, which returns a TextStream object:

Dim objTextStream
Set objTextStream = objFSO.OpenTextFile(Server.MapPath("thefile.txt"),1)

Note that the 1 is the value of the fsoForReading constant. The objTextStream has a number of methods of interest to us. Read(characters) reads the specified number of characters from the file. ReadLine returns the contents of a line as a string. If either of these 2 methods again, it will read them from the place you left off. There is also a ReadAll function, which returns the entire contents of the file at once:

Response.Write "Contents of the file:<br>" & objTextStream.ReadAll

So, putting all the code together, we get

Dim objFSO, objTextStream
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(Server.MapPath("thefile.txt")) Then
    'file exists
    Set objTextStream = objFSO.OpenTextFile(Server.MapPath("thefile.txt"),1)
    'output the contents of the file
    Response.Write "Contents of the file:<br>" & objTextStream.ReadAll
    'tidy up
    objTextStream.Close
    Set objTextStream = Nothing
End If


'clean up FSO object
Set objFSO = Nothing

You might also like...

Comments

James Crowley James first started this website when learning Visual Basic back in 1999 whilst studying his GCSEs. The site grew steadily over the years while being run as a hobby - to a regular monthly audience ...

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Every language has an optimization operator. In C++ that operator is ‘//’”