RSS
StartseiteKnowledge LibraryTop 10Impressum

7.10 Wie stelle ich fest, ob eine Datei/ ein Verzeichnis schon existiert?

VB4-VB6

Von: Thorsten Dörfler

Eine direkte Funktion zum Überprüfen, ob eine Datei, ein Verzeichnis oder Laufwerk existiert, bietet VB nicht. OK, VB6 bietet derartige Funktionen über das FileSystemObject (Projekt => Verweise > [X] Microsoft Scripting Runtime), aber nur um die Existenz einer Datei zu überprüfen, ist das FileSystemObject unnötiger Ballast, denn es geht auch mit Bordmitteln und dabei sind wirklich Bordmittel gemeint, nämlich die Dir$ - Funktion.

Übergibt man den Pfad eines Verzeichnisses, liefert der erstmalige Aufruf der Dir$ - Funktion den Dateinamen der ersten gefundenen Datei zurück, übergibt man den Pfad- und Dateinamen einer Datei, gibt Dir$ genau diesen Dateinamen zurück. Ist ein Pfad- und Dateiname nicht vorhanden, wird eine leere Zeichenfolge zurückgegeben.

Jetzt kommt es nur noch darauf an, dass Dir$ wirklich alle Dateien und Verzeichnisse zuverlässig zurückgibt, denn standardmäßig ignoriert Dir$ versteckte Dateien oder auch Verzeichnisse. Die Suche nach Verzeichnissen, gibt uns auch die Sicherheit, dass Verzeichnisse gefunden werden, die leer sind, denn jedes Verzeichnis besitzt generell zwei "Verzeichnisse", "." und "..", die von Dir$("Pfad", vbDirectory) erfasst werden.

Verpackt als handliche Funktion:

Public Function FileExists(ByVal FileName As String) As Boolean
  On Error Resume Next
  FileExists = (Len(Dir$(FileName, vbDirectory Or vbHidden Or _
                         vbNormal Or vbReadOnly Or vbSystem)) <> 0)
End Function