VBA Tipp: Feststellen, ob eine Datei vorhanden ist

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte feststellen, ob eine Datei in einem Verzeichnis vorhanden ist.

Lösung 1

Das geht mit folgender Funktion, die in einem globalen Modul hinterlegt wird.

Public Function DateiExistiert(Dateipfad As String) As Boolean
 
 'Quelle: www.dbwiki.net oder www.dbwiki.de
 
 On Error Resume Next
 DateiExistiert = Not (GetAttr(Dateipfad) And vbDirectory) = vbDirectory
 On Error GoTo 0
 
End Function


Lösung 2

Das geht mit folgender Funktion, die in einem globalen Modul hinterlegt wird.

Public Function DateiExistiert(ByVal Dateipfad As String) As Boolean
 
 'Quelle: www.dbwiki.net oder www.dbwiki.de
 
 DateiExistiert = CreateObject("Scripting.FileSystemObject").FileExists(Dateipfad)
 
End Function


Lösung 3

Das geht mit folgender Funktion, die in einem globalen Modul hinterlegt wird.
Die Lösung 3 ist nicht in allen Fällen geeignet (siehe Hinweise unten).

Public Function DateiExistiert(ByVal Pfad As String) As Boolean
 
 'Die Funktion ist nicht in allen Fällen einsetzbar, denn
 '- die Funktion erkennt ein reines Verzeichnis, in dem mindestens 1 Datei existiert, auch als Datei.
 '- die Funktion kann nicht zuverlässig innerhalb einer Schleife der Dir-Funktion verwendet werden.
 'Quelle: www.dbwiki.net oder www.dbwiki.de
 
 On Error Resume Next
 DateiExistiert = Dir(Pfad) <> ""
 On Error GoTo 0
 
End Function

Aufruf

 Dim strPfad As String
 strPfad = "D:\Mein Pfad\Meine Datei.txt"
 
 If DateiExistiert(strPfad) Then
   MsgBox "Die Datei existiert."
 Else
   MsgBox "Die Datei existiert nicht."
 End If
Wiki hinweis.png

Hinweise zur Lösung 3:
Die Funktion in Lösung 3 ist nicht in allen Fällen einsetzbar, denn
• die Funktion erkennt ein reines Verzeichnis, in dem mindestens 1 Datei existiert, auch als Datei.
• die Funktion kann nicht zuverlässig innerhalb einer Schleife der Dir-Funktion verwendet werden.


Web-Links