Software Testing Learning Hub

File system object in QTP

QTP provides various features and built-in functions to handle the folder structure. By using “filesystemobject ”  you can easily work on folders and files.this is commonly used object for parameterization

there are several methods provided with fileobjectsystem in this post we will see some commonly used method with the example

 Methods:

BuildPath Method
Appends a name to an existing path. The BuildPath method inserts an additional path separator between the existing path and the name, only if necessary 

Function GetBuildPath(path)
Dim fso, newpath
Set fso = CreateObject("Scripting.FileSystemObject")
newpath = fso.BuildPath(path, "Sub Folder") 
GetBuildPath = newpath
End Function
Close Method
This method is used to close the open TextStream file. if you open any file for reading for writing purpose then you should close it once you complete with the operation. 

object.Close( );
Sub CreateAFile
   Dim fso, MyFile
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MyFile = fso.CreateTextFile("c:testfile.txt", True)
   MyFile.WriteLine("This is a test.")
   MyFile.Close
End Sub
Copy Method
This is one of useful method used. it Copies a specified file or folder from one location to another. 

Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("c:testfile.txt", True)
MyFile.WriteLine("This is a test.")
MyFile.Close
Set MyFile = fso.GetFile("c:testfile.txt")
MyFile.Copy ("c:windowsdesktoptest2.txt")
CopyFile Method
Copies one or more files from one location to another. 

FileSystemObject.CopyFile "c:mydocumentsletters*.doc", "c:tempfolder"

this code will copy all docs file to desired location.

CopyFolder Method
Recursively copies a folder from one location to another. 

FileSystemObject.CopyFolder "c:mydocumentsletters*", "c:tempfolder"

this code will copy all folders from letters folder to tempfolder.

CreateFolder Method
following code use to Creates a folder in desired location. 

Function CreateFolderDemo
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.CreateFolder("c:New Folder")
   CreateFolderDemo = f.Path
End Function
CreateTextFile Method
Creates a specified file name and returns a TextStream object that can be used to read from or write to the file. 

Sub CreateAfile
   Dim fso, MyFile
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MyFile = fso.CreateTextFile("c:testfile.txt", True)
   MyFile.WriteLine("This is a test.")
   MyFile.Close
End Sub
Delete Method
Deletes a specified file or folder. 

Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("c:testfile.txt", True)
MyFile.WriteLine("This is a test.")
MyFile.Close
Set MyFile = fso.GetFile("c:testfile.txt")
MyFile.Delete
DeleteFile Method
Deletes a specified file. 

Sub DeleteAFile(filespec)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.DeleteFile(filespec)
End Sub
DeleteFolder Method
Deletes a specified folder and its contents. 

Sub DeleteAFolder(filespec)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.DeleteFolder(filespec)
End Sub
DriveExists Method
Returns true if the specified drive exists; false if it does not. 

Function ReportDriveStatus(drv)
   Dim fso, msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   If fso.DriveExists(drv) Then
      msg = ("Drive " & UCase(drv) & " exists.")
   Else
      msg = ("Drive " & UCase(drv) & " doesn't exist.")
   End If
   ReportDriveStatus = msg
End Function
Exists Method
Returns true if a specified key exists in the Dictionary object, false if it does not. 

Function KeyExistsDemo
   Dim d, msg   ' Create some variables.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athens"   ' Add some   keys and items.
   d.Add "b", "Belgrade"
   d.Add "c", "Cairo"
   If d.Exists("c") Then
      msg = "Specified key exists."
   Else
      msg = "Specified key doesn't exist."
   End If
   KeyExistsDemo = msg
End Function
FileExists Method
Returns true if a specified file exists; false if it does not. 

Function ReportFileStatus(filespec)
   Dim fso, msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   If (fso.FileExists(filespec)) Then
      msg = filespec & " exists."
   Else
      msg = filespec & " doesn't exist."
   End If
   ReportFileStatus = msg
End Function
FolderExists Method
Returns true if a specified folder exists; false if it does not. 

Function ReportFolderStatus(fldr)
   Dim fso, msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   If (fso.FolderExists(fldr)) Then
      msg = fldr & " exists."
   Else
      msg = fldr & " doesn't exist."
   End If
   ReportFolderStatus = msg
End Function
GetFile Method
Returns a File object corresponding to the file in a specified path. 

Function ShowFileAccessInfo(filespec)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(filespec)
   s = f.Path & "<br>"
   s = s & "Created: " & f.DateCreated & "<br>"
   s = s & "Last Accessed: " & f.DateLastAccessed & "<br>"
   s = s & "Last Modified: " & f.DateLastModified   
   ShowFileAccessInfo = s
End Function
GetFileName Method
Returns the last component of specified path that is not part of the drive specification. 

Function GetAName(DriveSpec)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   GetAName = fso.GetFileName(DriveSpec)
End Function
GetFolder Method
Returns a Folder object corresponding to the folder in a specified path. 

Sub AddNewFolder(path, folderName)
   Dim fso, f, fc, nf
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(path)
   Set fc = f.SubFolders
   If folderName <> "" Then
      Set nf = fc.Add(folderName)
   Else
      Set nf = fc.Add("New Folder")
   End If
End Sub
GetSpecialFolder Method
Returns the special folder object specified. 

Dim fso, tempfile
Set fso = CreateObject("Scripting.FileSystemObject")

Function CreateTempFile 
   Dim tfolder, tname, tfile
   Const TemporaryFolder = 2
   Set tfolder = fso.GetSpecialFolder(TemporaryFolder)
   tname = fso.GetTempName   
   Set tfile = tfolder.CreateTextFile(tname)
   Set CreateTempFile = tfile
End Function

Set tempfile = CreateTempFile
tempfile.WriteLine "Hello World"
tempfile.Close
GetTempName Method
Returns a randomly generated temporary file or folder name that is useful for performing operations that require a temporary file or folder. 

Dim fso, tempfile
Set fso = CreateObject("Scripting.FileSystemObject")

Function CreateTempFile 
   Dim tfolder, tname, tfile
   Const TemporaryFolder = 2
   Set tfolder = fso.GetSpecialFolder(TemporaryFolder)
   tname = fso.GetTempName    
   Set tfile = tfolder.CreateTextFile(tname)
   Set CreateTempFile = tfile
End Function

Set tempfile = CreateTempFile
tempfile.WriteLine "Hello World"
tempfile.Close
OpenAsTextStream Method
Opens a specified file and returns a TextStream object that can be used to read from, write to, or append to the file. 

The iomode argument can have any of the following settings:

ConstantValueDescription
ForReading1Open a file for reading only. You can’t write to this file.
ForWriting2Open a file for writing. If a file with the same name exists, its previous contents are overwritten.
ForAppending8Open a file and write to the end of the file.

The format argument can have any of the following settings:

ConstantValueDescription
TristateUseDefault-2Opens the file using the system default.
TristateTrue-1Opens the file as Unicode.
TristateFalse 0Opens the file as ASCII.

Code :

Function TextStreamTest
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
   Dim fso, f, ts
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.CreateTextFile "test1.txt"   ' Create a file.
   Set f = fso.GetFile("test1.txt")
   Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
   ts.Write "Hello World"
   ts.Close
   Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
   TextStreamTest = ts.ReadLine
   ts.Close
End Function
OpenTextFile Method
Opens a specified file and returns a TextStream object that can be used to read from, write to, or append to the file. 

Sub OpenTextFileTest
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:testfile.txt", ForWriting, True)
   f.Write "Hello world!"
   f.Close
End Sub
Read Method
Reads a specified number of characters from a TextStream file and returns the resulting string. 

Function ReadTextFileTest
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Dim fso, f, Msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:testfile.txt", ForWriting, True)
   f.Write "Hello world!"
   Set f = fso.OpenTextFile("c:testfile.txt", ForReading)
   ReadTextFileTest = f.Read(5)
End Function
ReadAll Method
Reads an entire TextStream file and returns the resulting string. 

Function ReadAllTextFile
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:testfile.txt", ForWriting, True)
   f.Write "Hello world!"
   Set f = fso.OpenTextFile("c:testfile.txt", ForReading)
   ReadAllTextFile =   f.ReadAll
End Function
ReadLine Method
Reads an entire line (up to, but not including, the newline character) from a TextStream file and returns the resulting string. 

Function ReadLineTextFile
   Const ForReading = 1, ForWriting = 2
   Dim fso, MyFile
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MyFile = fso.OpenTextFile("c:testfile.txt", ForWriting, True)
   MyFile.WriteLine "Hello world!"
   MyFile.WriteLine "The quick brown fox"
   MyFile.Close
   Set MyFile = fso.OpenTextFile("c:testfile.txt", ForReading)
   ReadLineTextFile = MyFile.ReadLine    ' Returns "Hello world!"
End Function
Write Method
Writes a specified string to a TextStream file. 

Function WriteToFile
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:testfile.txt", ForWriting, True)
   f.Write "Hello world!" 
   Set f = fso.OpenTextFile("c:testfile.txt", ForReading)
   WriteToFile =   f.ReadLine
End Function
WriteBlankLines Method
Writes a specified number of newline characters to a TextStream file. 

Function WriteBlankLinesToFile
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:testfile.txt", ForWriting, True)
   f.WriteBlankLines 2 
   f.WriteLine "Hello World!"
   Set f = fso.OpenTextFile("c:testfile.txt", ForReading)
   WriteBlankLinesToFile = f.ReadAll
End Function
WriteLine Method
Writes a specified string and newline character to a TextStream file. 

Function WriteLineToFile
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:testfile.txt", ForWriting, True)
   f.WriteLine "Hello world!" 
   f.WriteLine "VBScript is fun!"
   Set f = fso.OpenTextFile("c:testfile.txt", ForReading)
   WriteLineToFile = f.ReadAll
End Function

File system object provide various types of methods which helps to work easily with file system.