Visual Basic Programming Code Examples Visual Basic > Code Snippets Code Examples Display information about a file Display information about a file Private Type SHFILEINFO hIcon As Long iIcon As Long dwAttributes As Long szDisplayName As String * 260 szTypeName As String * 80 End Type Const FILE_ATTRIBUTE_ARCHIVE = &H20 Const FILE_ATTRIBUTE_COMPRESSED = &H800 Const FILE_ATTRIBUTE_DIRECTORY = &H10 Const FILE_ATTRIBUTE_HIDDEN = &H2 Const FILE_ATTRIBUTE_NORMAL = &H0 Const FILE_ATTRIBUTE_READONLY = &H1 Const FILE_ATTRIBUTE_SYSTEM = &H4 Const SHGFI_ATTRIBUTES = &H800 Const SHGFI_DISPLAYNAME = &H200 Const SHGFI_EXETYPE = &H2000 Const SHGFI_ICON = &H100 Const SHGFI_ICONLOCATION = &H1000 Const SHGFI_LARGEICON = &H0 Const SHGFI_LINKOVERLAY = &H8000 Const SHGFI_OPENICON = &H2 Const SHGFI_PIDL = &H8 Const SHGFI_SELECTED = &H10000 Const SHGFI_SHELLICONSIZE = &H4 Const SHGFI_SMALLICON = &H1 Const SHGFI_SYSICONINDEX = &H4000 Const SHGFI_TYPENAME = &H400 Const SHGFI_USEFILEATTRIBUTES = &H10 Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As Any, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long Private Declare Function DrawIcon Lib "user32.dll" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long Private Declare Function DestroyIcon Lib "user32.dll" (ByVal hIcon As Long) As Long Private Sub Command1_Click() Dim finfo As SHFILEINFO Dim rval As Long rval = SHGetFileInfo("C:\autoexec.bat", FILE_ATTRIBUTE_ARCHIVE, finfo, Len(finfo), SHGFI_USEFILEATTRIBUTES Or SHGFI_TYPENAME Or SHGFI_ICON) MsgBox "File type is " & Left(finfo.szTypeName, InStr(finfo.szTypeName, Chr(0)) - 1) rval = DrawIcon(Form1.hDC, 20, 20, finfo.hIcon) rval = DestroyIcon(finfo.hIcon) End Sub