Rubrik: Dateisystem · Dateien - allgemein | VB-Versionen: VB2005, VB2008 | 06.03.09 |
Standard-Dateibeschreibung ermitteln Dieser Tipp verrät, wie sich die Standard-Dateibeschreibung einer Datei ermitteln lässt, so wie sie auch vom Windows Explorer angezeigt wird. | ||
Autor: Dieter Otter | Bewertung: | Views: 9.349 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Dieser Tipp verrät, wie sich die Standard-Dateibeschreibung einer Datei ermitteln lässt, so wie sie auch vom Windows Explorer angezeigt wird (wie bspw. Adobe Acrobat Dokument, Microsoft Office Access-Anwendung usw.).
Fügen Sie hierzu nachfolgenden Code in Ihr Projekt ein:
Imports System.Runtime.InteropServices
' Benötigte API-Deklarationen Private Declare Auto Function SHGetFileInfo Lib "shell32.dll" ( _ ByVal pszPath As String, _ ByVal dwFileAttributes As Integer, _ ByRef psfi As SHFILEINFO, _ ByVal cbFileInfo As Integer, _ ByVal uFlags As Integer) As IntPtr Private Const SHGFI_TYPENAME = &H400 Private Const MAX_PATH = 260 <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _ Private Structure SHFILEINFO Public hIcon As IntPtr Public iIcon As Integer Public dwAttributes As Integer <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MAX_PATH)> _ Public szDisplayName As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _ Public szTypeName As String End Structure
''' <summary> ''' Ermittelt die Standard-Dateibeschreibung der übergebenen Datei ''' </summary> ''' <param name="Filename">Dateiname mit vollständiger Pfadangabe</param> ''' <returns>Standard-Dateibeschreibung wie im Windows Explorer angezeigt</returns> Public Function GetFileDescription(ByVal Filename As String) As String ' SHFileInfo-Struktur initialisieren Dim oInfo As New SHFILEINFO ' Aufruf der API-Funktion SHGetFileInfo(Filename, 0, oInfo, Marshal.SizeOf(oInfo), SHGFI_TYPENAME) ' Standard-Dateibeschreibung zurückgeben If Not IsNothing(oInfo.szTypeName) Then Return oInfo.szTypeName Else Return "" End If End Function
Aufrufbeispiel:
Label1.Text = GetFileDescription("d:\test.txt")