Wie kann ich in VB.NET 2003 den Dateityp einer Datei ermitteln, wie er im Explorer angezeigt wird?

Antwort

Um in VB.NET 2003 den Dateityp so zu ermitteln, wie er im Windows Explorer unter „Typ“ angezeigt wird (z.B. „Textdokument“, „JPEG-Bild“), kannst du die Windows-API-Funktion `SHGetFileInfo` verwenden. Diese Funktion liefert dir die vom System registrierte Beschreibung des Dateityps. Hier ein Beispiel, wie das in VB.NET 2003 funktioniert: ```vbnet Imports System.Runtime.InteropServices Public Class FileTypeHelper Private Const SHGFI_TYPENAME As Integer = &H400 <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:=260)> Public szDisplayName As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> Public szTypeName As String End Structure <DllImport("shell32.dll", CharSet:=CharSet.Auto)> Private Shared Function SHGetFileInfo( _ ByVal pszPath As String, _ ByVal dwFileAttributes As Integer, _ ByRef psfi As SHFILEINFO, _ ByVal cbFileInfo As Integer, _ ByVal uFlags As Integer) As IntPtr End Function Public Shared Function GetFileType(ByVal filePath As String) As String Dim shinfo As New SHFILEINFO() SHGetFileInfo(filePath, 0, shinfo, Marshal.SizeOf(shinfo), SHGFI_TYPENAME) Return shinfo.szTypeName End Function End Class ``` **Verwendung:** ```vbnet Dim typ As String = FileTypeHelper.GetFileType("C:\Pfad\zu\deiner\datei.txt") MessageBox.Show(typ) ``` **Erklärung:** - Die Funktion `GetFileType` gibt dir den Typnamen zurück, wie er im Explorer angezeigt wird. - Das funktioniert für beliebige Dateien, solange sie eine bekannte Erweiterung haben. **Hinweis:** Diese Methode funktioniert unter allen Windows-Versionen, die von VB.NET 2003 unterstützt werden. Weitere Infos zur API: [Microsoft Doku zu SHGetFileInfo](https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shgetfileinfoa)

Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Wie prüfe ich in VB.NET 2003, ob ein TreeView gefüllt ist?

Um in VB.NET 2003 festzustellen, ob ein `TreeView`-Steuerelement gefüllt ist, prüfst du, ob das `Nodes`-Eigenschaft des TreeViews mindestens einen Knoten enthält. Das machst du so: ```... [mehr]

Wie addiert man in VB.NET 2003 die Werte "34 KB", "1.450 KB" und "100 KB"?

Um in VB.NET 2003 die Werte "34 KB", "1.450 KB" und "100 KB" zu addieren, musst du die Zahlen aus den Strings extrahieren, in einen numerischen Datentyp umwandeln (z.B. `... [mehr]

Gibt es eine Möglichkeit, in VB.NET 2003 die Farbe der SelectedItems eines ListViews zu beeinflussen?

In VB.NET 2003 (also .NET Framework 1.1) gibt es leider keine direkte Möglichkeit, die Farbe der ausgewählten Elemente (`SelectedItems`) eines `ListView`-Steuerelements im Detail- oder Repor... [mehr]

Kann in VB.NET 2003 der AutoScroll eines Panels so manipuliert werden, dass nur ein Teil des Inhalts gescrollt wird und der Rest verborgen bleibt?

In VB.NET 2003 (also .NET Framework 1.1) ist das Verhalten des `Panel`-Steuerelements mit aktiviertem `AutoScroll` so ausgelegt, dass beim Scrollen immer der gesamte Inhalt des Panels sichtbar gemacht... [mehr]

Wie ermittelt man in VB.NET 2003 die benötigte Höhe einer TreeView, damit kein Scrollbalken angezeigt wird?

Um in VB.NET 2003 zu bestimmen, wie viel Höhe eine `TreeView` benötigt, damit kein vertikaler Scrollbalken angezeigt wird, musst du die Höhe aller sichtbaren Knoten (Nodes) berechnen. D... [mehr]

Kann man in VB.NET 2003 das Aussehen des SelectedNode eines TreeView steuern?

In VB.NET 2003 (also .NET Framework 1.1) ist die Möglichkeit, das Aussehen des `SelectedNode` eines `TreeView`-Steuerelements direkt zu beeinflussen, sehr eingeschränkt. Die TreeView-Kontrol... [mehr]

Wie kann man in VB.NET 2003 bei MouseEnter einem Control ein MouseDown-Ereignis simulieren?

In VB.NET 2003 gibt es keine eingebaute Möglichkeit, einem Control direkt ein „MouseDown“-Ereignis vorzutäuschen, da Ereignisse wie `MouseDown` normalerweise nur durch echte Benu... [mehr]

Lädt ein VB.NET 2003 Form deutlich schneller, wenn Controls im Designer auf Visible=false gesetzt und erst am Ende von Form_Load auf Visible=true gestellt werden?

Das Setzen von `Controls.Visible = False` für alle Steuerelemente auf der obersten Ebene im Entwurfsmodus und das anschließende Aktivieren (` = True`) am Ende von `_Load` kann in **VB.NET 2... [mehr]

Wie kann man in Java erkennen, ob eine Datei ein Bild oder Text enthält?

Um in Java zu erkennen, ob eine Datei ein Bild oder Text enthält, kannst du verschiedene Ansätze nutzen. Hier sind zwei gängige Methoden: **1. Über die Dateiendung:** Du kannst di... [mehr]

Wie selektiere ich in VB.NET 2003 einen TreeViewNode mit der rechten Maustaste?

Um in VB.NET 2003 einen TreeNode im TreeView mit der rechten Maustaste auszuwählen, musst du das MouseDown-Event des TreeView-Steuerelements verwenden. Dort prüfst du, ob die rechte Maustast... [mehr]