Tipp 1.19 - Existiert Datei

Wie kann ich prüfen, ob eine Datei existiert?

Mit dieser Funktion können Sie prüfen, ob eine Datei existiert. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Api-AufrufeVerwendete Win32-Api-Aufrufe und Typen: FindFirstFile, FindClose - FILETIME, WIN32_FIND_DATA

Beispiel:

Option Explicit
 
Public Const MAXPATH     As Long = 260
 
Public Type FILETIME
  dwLowDateTime          As Long
  dwHighDateTime         As Long
End Type
 
Public Type WIN32_FIND_DATA
  dwFileAttributes       As Long
  ftCreationTime         As FILETIME
  ftLastAccessTime       As FILETIME
  ftLastWriteTime        As FILETIME
  nFileSizeHigh          As Long
  nFileSizeLow           As Long
  dwReserved0            As Long
  dwReserved1            As Long
  cFileName              As String * MAXPATH
  cAlternate             As String * 14
End Type
 
Public Declare Function FindFirstFile _
    Lib "kernel32" Alias _
    "FindFirstFileA" _
    (ByVal lpFileName As String, _
    lpFindFileData As WIN32_FIND_DATA) _
    As Long
Public Declare Function FindClose _
    Lib "kernel32" _
    (ByVal hFindFile As Long) As Long
 
Public Function FileExists( _
                ByVal sSource As String) _
                As Boolean
  '// -----------------------------------------------------
  '// Methode:   | Prüft ob Datei existiert
  '// -----------------------------------------------------
  '// Parameter: | sSource = gültiger Dateipfad
  '//            | (auch UNC-Pfad)
  '// -----------------------------------------------------
  '// Rückgabe:  | True = Datei vorhanden;
  '//            | False = Datei nicht vorhanden
  '// -----------------------------------------------------
  '// Autor:     | Stefan Kulpa
  '//            | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
  Const INVALID_HANDLE_VALUE  As Long = -1
  Dim WFD                     As WIN32_FIND_DATA
  Dim lFile                   As Long
  lFile = FindFirstFile(sSource, WFD)
  '// Prüfung auf gültigen Datei-Handle
  FileExists = lFile <> INVALID_HANDLE_VALUE
  Call FindClose(lFile)
 
End Function