2011-08-23 2 views
30

Je veux vérifier si un fichier existe et si c'est le cas, je veux l'ouvrir et lire la 1ère ligne,comment puis-je vérifier si un fichier existe?

Si le fichier n'existe pas ou si le fichier n'a pas de contenu alors je veux échouer silencieusement sans que personne ne sache qu'une erreur s'est produite.

+2

Avez-vous cherché 'fichier vbscript existe' n'importe où? – Fionnuala

+0

@Fionnuala mais ceci * est * le premier résultat de google: D;) – gordatron

Répondre

57

Commencez avec ceci:

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

Extrait du documentation.

-3

un dossier existant échoueront avec FileExists

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

utilisation à la place ou en plus:

Function FolderExists(strFolderPath) 
' Check if a path exists 
+0

Cette réponse ne répond pas à la question. Il ne suit pas non plus les directives de mise en forme. –

+0

Réponse ne fournit aucun code de fonctionnement –

0

Pour tous ceux qui cherchent un moyen de regarder un fichier spécifique à exister dans 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 

Utilisation:

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 
Questions connexes