vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik:    |   VB-Versionen: VB601.03.15
Erweiterte Datei-Eigenschaften über das Shell-Objekt auslesen

Mit Hilfe des Shell- und Folder-Objekts aus der SHELL32.DLL lassen sich sehr einfach erweiterte Datei-Eigenschaften auslesen.

Autor:  Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  2.144 
http://www.tools4vb.de/System:  Win7, Win8, Win10, Win11 Beispielprojekt 

Nachfolgender Codeauszug zeigt, wie man unter Zuhilfenahme des Shell- und Folder-Objekts auf erweiterte Datei-Eigenschaften einer Datei zugreifen bzw. diese auslesen kann.

Das Shell-Objekt kann hierbei entweder direkt über den Verweis "Microsoft Shell Controls And Automation" eingebunden werden oder aber auch via Late-Binding zur Laufzeit erzeugt werden.

Dim oShell As Object   ' Shell32.Shell
Dim oFolder As Object  ' Shell32.Folder
Dim oItem As Object    ' Shell32.FolderItem
 
Dim sFile As String
Dim sPath As String
 
' Datei, deren Eigenschaften ausgelesen werden sollen
sFile = "d:\temp\MeinBild.gif"
 
' Dateiname in Pfad und Datei zerlegen
sPath = Left$(sFile, InStrRev(sFile, "\") - 1)
sFile = Mid$(sFile, InStrRev(sFile, "\") + 1)
 
' Shell- und Folder-Objekt erstellen
Set oShell = CreateObject("shell.application")
 
' Wichtig: Pfad als Variant übergeben!
Set oFolder = oShell.NameSpace(CVar(sPath))
 
If Not oFolder Is Nothing Then
  ' FolderItem-Objekt der Datei
  Set oItem = oFolder.ParseName(sFile)
 
  If Not oItem Is Nothing Then
    ' folgende Eigenschaften stehen zur Verfügung
    Debug.Print "Name:      " & oFolder.GetDetailsOf(oItem, 0)
    Debug.Print "Size:      " & oFolder.GetDetailsOf(oItem, 1)
    Debug.Print "Type:      " & oFolder.GetDetailsOf(oItem, 2)
    Debug.Print "DateTime:  " & oFolder.GetDetailsOf(oItem, 3)
    Debug.Print "Attribut:  " & oFolder.GetDetailsOf(oItem, 4)
    Debug.Print "InfoTip:   " & oFolder.GetDetailsOf(oItem, -1)
  End If
  Set oItem = Nothing
End If
 
' Objekte zerstören
Set oFolder = Nothing
Set oShell = Nothing