Dateien/Verzeichnisse

Überprüfen ob Datei oder Verzeichnis existiert

Datei/Verzeichnis existiert ?

Manchmal ist es notwendig, das in einem Ablauf geprüft wird, ob eine Datei oder Verzeichnis existiert. Dieses Vorgehen kommt zum Beispiel vor, wenn man Daten aus einer bestehenden Datei importierten möchte. Ein zweites Szenario wäre, das man eine bestehende Datei nicht überschreiben möchte, sondern nur erweitern oder ändern. Um jetzt überprüfen zu können, ob die Datei oder das Verzeichnis existieren, nehmen wir uns die Typbibliothek Scripting zur Hilfe und nutzen „FileSystemObject“ in der folgenden Funktion :

Public Function DateiVorhanden(strDatei As String) 
    Dim objFSO As Object 
    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    If objFSO.FileExists(strDatei) = True Then 
        DateiVorhanden = True 
    Else 
        DateiVorhanden = False 
    End If 
    Set objFSO = Nothing 
End Function

Als erstes erstellen wir das Objekt Scripting.FileSystemObject. Danach wird das Ereignis FileExists aufgerufen mit dem übergebenen Pfad aus der Variable strDatei. Ist die Datei oder das Verzeichnis vorhanden, so gibt die Funktion DateiVorhanden Wahr (True) zurück. Existiert die Datei oder das übergebene Verzeichnis nicht, so ist der Rückgabewert Falsch (False).
Diese Funktion kann auch entsprechend umgebaut werden, das sie nicht Wahr oder Falsch zurückgibt, sondern auf Grund der Existenz eine entsprechende Aktion ausführt.

Ein Aufruf der Funktion DateiVorhanden sieht wie folgt aus : (Beispiel)

Sub Test() 
    Dim strDatei As String 
    strDatei = "C:\Test.txt" 
    MsgBox DateiVorhanden(strDatei) 
End Sub

Diese kleine Testfunktion gibt in einer Message-Box Falsch oder Wahr zurück, je nachdem ob die Datei Test.txt auf dem Laufwerk C existiert oder nicht. Wenn Sie eine andere Datei oder Verzeichnis überprüfen wollen, müssen Sie nur den Wert der Variable strDatei entsprechend ändern.

4 Gedanken zu „Überprüfen ob Datei oder Verzeichnis existiert

  1. Hallo guten Abend,
    habe einen kleinen Tippfehler in der Funktion: DateiVorhanden()
    und zwar am Ende die Zeile:
    ————
    End If
    Set obFSO = Nothing
    End Function
    ———–
    wäre
    Set objFSO = Nothing
    da dürfte das „j“ verloren gegangen sein.
    Mit freundlichen Grüßen
    Ladislaus PAL

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.