TKSoft-Online

API: Existiert Datei/Ordner? PDF Drucken E-Mail
( 1 Vote )
MS-Access Codes - Codeschnipsel Dateisystem
  
Mittwoch, den 28. Mai 2008 um 06:00 Uhr

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 LongAs 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:


DatumKlicks
Total2793
Mi. 237
Di. 223
Mo. 213
So. 202
Sa. 193
Fr. 183
Do. 173
Aktualisiert ( Freitag, den 02. Juli 2010 um 09:19 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173466 Downloads