|
Zur Ermittlung des Dateityps einer Datei oder eines Ordners, wie er etwa im Explorer angezeigt wird, bietet Visual Basic selbst keine Funktion an. Sie können den Dateityp jedoch mittels der API-Funktion SHGetFileInfo ermitteln.
Dazu übergeben Sie dieser Funktion den Pfad der betreffenden Datei bzw. des betreffenden Ordners. Aus dem Element szTypeName der ebenfalls an die Funktion zu übergebenden Struktur-Variablen SHFILEINFO können Sie anschließend den Dateityp auslesen.
In die Funktion FileType (in einem Standard-Modul) verpackt, wird der Aufruf einfacher:
Private Const MAX_PATH = 260
Private Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * MAX_PATH
szTypeName As String * 80
End Type
Private Declare Function SHGetFileInfo Lib "shell32.dll" _
Alias "SHGetFileInfoA" (ByVal pszPath As String, _
ByVal dwFileAttributes As Long, psfi As SHFILEINFO, _
ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
Public Function FileType(Path As String) As String
Dim nPath As String
Dim nFileInfo As SHFILEINFO
Const SHGFI_TYPENAME = &H400
nPath = Trim$(Path)
If Len(nPath) Then
nFileInfo.szTypeName = Space(80)
If SHGetFileInfo(Path, 0&, nFileInfo, LenB(nFileInfo), _
SHGFI_TYPENAME) Then
FileType = Mid(nFileInfo.szTypeName, 1, _
InStr(nFileInfo.szTypeName, vbNullChar) - 1)
End If
End If
End Function
|