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

Problemstellung:

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: 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 "SmartTools SQL aus Abfragen 3.0"...
1.png2.png5.png2.png3.png4.png5.png
Heute37
Gestern175
Diese Woche986
Dieser Monat4274
Total1252345

  • IP: 34.204.176.189
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

2
Online

22. September 2019

Letzte Kommentare

  • 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...

     
  • Trusted Locations Manager

    Tommy Admin 13.07.2018 13:06
    RE: Trusted Locations Manager
    Hallo Matthias, aus Ermangelung einer 64bit Version kann ich das leider nicht prüfen. Tut mir leid. Gruss ...

    Weiterlesen...

     
  • Trusted Locations Manager

    Matthias 13.07.2018 06:48
    Funktioniert nicht
    Habe gerade den TL-Manager installiert. Nach dem Start sagt er mir, dass es kein Office erkennen ...

    Weiterlesen...