36

I want to check to see if a file exists and if it does, I want to open it and read the 1st line,

If the file doesn't exist or if the file has no contents then I want to fail silently without letting anyone know that an error occurred.

John Saunders
  • 160,644
  • 26
  • 247
  • 397
Cocoa Dev
  • 9,361
  • 31
  • 109
  • 177

3 Answers3

72

Start with this:

Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(path)) Then
   msg = path & " exists."
Else
   msg = path & " doesn't exist."
End If

Taken from the documentation.

Helge Klein
  • 8,829
  • 8
  • 51
  • 71
0

For anyone who is looking a way to watch a specific file to exist in VBS:

Function bIsFileDownloaded(strPath, timeout)
  Dim FSO, fileIsDownloaded
  set FSO = CreateObject("Scripting.FileSystemObject")
  fileIsDownloaded = false
  limit = DateAdd("s", timeout, Now)
  Do While Now < limit
    If FSO.FileExists(strPath) Then : fileIsDownloaded = True : Exit Do : End If
    WScript.Sleep 1000      
  Loop
  Set FSO = Nothing
  bIsFileDownloaded = fileIsDownloaded
End Function

Usage:

FileName = "C:\test.txt"
fileIsDownloaded = bIsFileDownloaded(FileName, 5) ' keep watching for 5 seconds

If fileIsDownloaded Then
  WScript.Echo Now & " File is Downloaded: " & FileName
Else
  WScript.Echo Now & " Timeout, file not found: " & FileName 
End If
Đức Thanh Nguyễn
  • 9,127
  • 3
  • 21
  • 27
-3

an existing folder will FAIL with FileExists

Function FileExists(strFileName)
' Check if a file exists - returns True or False

use instead or in addition:

Function FolderExists(strFolderPath)
' Check if a path exists
Martin Turjak
  • 20,896
  • 5
  • 56
  • 76
allanw
  • 9
  • 1