1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Problemstellung:

Nur für 32Bit Office Versionen

Wie kann ich mit API prüfen ob eine Datei bzw. Verzeichnis existiert? 

Lösung:

Folgenden Code in ein neues Modul kopieren.

Public Declare Function FindFirstFile _
    Lib "kernel32" Alias "FindFirstFileA" ( _
    ByVal lpFileName As String, _
    lpFindData As tpWin32FindData) As Long
Public Declare Function FindClose _
    Lib "kernel32" ( _
    ByVal hFindFile As Long) As Long
Private Type tpFileTime
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Private Type tpWin32FindData
    dwFileAttributes As Long
    ftCreationTime As tpFileTime
    ftLastAccessTime As tpFileTime
    ftLastWriteTime As tpFileTime
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cstrFileName As String * 512
    cAlternate As String * 14
End Type
Public Enum enFileType
    eFile = 1
    eFolder = 2
End Enum
Public Function DoesFileExistAPI(sFileName As String, _
    Optional FileType As enFileType = eFile) As Boolean
    Dim typFindData As tpWin32FindData
    Dim lngRet As Long
    lngRet = FindFirstFile(sFileName, typFindData)
    If lngRet <> -1 Then
        If typFindData.dwFileAttributes And 16 Then
            If FileType = eFolder Then
                DoesFileExistAPI = True
            End If
        Else
            If FileType = eFile Then
                DoesFileExistAPI = True
            End If
        End If
        lngRet = FindClose(lngRet)
    End If
End Function

Aufruf z.B.:

If DoesFileExistAPI("F:\Access\tk_Rechnen_mit_Zeiten00.zip", eFile) = True Then
    MsgBox "Datei " & "F:\Access\tk_Rechnen_mit_Zeiten00.zip" & " existiert"
Else
    MsgBox "Datei " & "F:\Access\tk_Rechnen_mit_Zeiten00.zip" & " existiert nicht!"
End If

Ergebnis:


oder

If DoesFileExistAPI("F:\Access1", eFolder) = True Then
    MsgBox "Verzeichnis " & "F:\Access1" & " existiert"
Else
    MsgBox "Verzeichnis " & "F:\Access1" & " existiert nicht!"
End If

Ergebnis:


 

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png5.png8.png5.png9.png4.png0.png
Heute43
Gestern642
Diese Woche2098
Dieser Monat5814
Total1585940

  • IP: 3.142.35.75
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

2
Online

20. April 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...