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

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

Neueste Artikel

Problemstellung: Ab MS-Office 2010 gibt es eine 32bit und eine 64bit Variante.Übernimmt man nun eine Datenbank nach 64bit und diese enthält API-Declare Anweisungenerhlt min in der Regel diese...
1.png2.png0.png4.png4.png1.png7.png
Heute54
Gestern127
Diese Woche462
Dieser Monat1841
Total1204417

  • IP: 54.80.96.153
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

2
Online

20. September 2018

Letzte Kommentare

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