Mit der folgenden Funktion lassen sich aus einem Verzeichnis die Dateien ermitteln, die einem bestimmten Dateityp entsprechen.
Die Detailansicht des Explorer macht es vor:
Zu den meisten Dateien wird in der Spalte Typ eine Beschreibung angezeigt.
Mit dem folgenden Code läßt sich diese Beschreibung abfragen:
Der Code:
(
http://www.eknori.de/downloads/FileInfo.zip )
im Deklarationsteil:
Const SHGFI_TYPENAME = &H400&
Private Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * 260
szTypeName As String * 80
End Type
Private Declare Function SHGetFileInfo Lib "Shell32" Alias _
"SHGetFileInfoA" (ByVal pszPath As Any, _
ByVal dwFileAttributes As Long, _
psfi As SHFILEINFO, _
ByVal cbFileInfo As Long, _
ByVal uFlags As Long) As Long
die Funktion:
Private Function GibTypName(DateiPfad as String) as String
Dim tt As Long
Dim SHInf As SHFILEINFO
tt = SHGetFileInfo(DateiPfad, 0, SHInf, Len(SHInf), SHGFI_TYPENAME)
If tt = 1 Then
GibTypName = Left(SHInf.szTypeName, InStr(1, SHInf.szTypeName, Chr$(0)) - 1)
If GibTypName = "" Then GibTypName = "keinem Dateityp zugeordnet"
Else
GibTypName = "Datei existiert nicht"
End Function
Aufruf: Fname = GibTypName("Hier den Pfad und Dateinamen eintragen")