Dateieigenschaften auslesen
Um die spezifischen Eigenschaften einer Datei auszulesen, z.B. Dateigröße, Erstelldatum, Änderungsdatum etc. , kann man sich Scripting.FileSystemObject bedienen. Dadurch erhält man einen sehr schlanken Code mit nur wenigen Zeilen da das Objekt alle benötigten Methoden mitbringt.
Dies gilt für alle im Windows bekannten Dateiformate. Für Microsoft Office Word Dateien ist es zusätzlich möglich, weitere Eigenschaften wie z.B. der Name des Autors auszulesen, doch dazu später.
A) Dateieigenschaften aller Dateien
Function getFileProperties() Dim fso, gf Dim dateiname As String dateiname = "c:\Textdatei.txt" Set fso = CreateObject("Scripting.FileSystemObject") Set gf = fso.GetFile(dateiname) With gf MsgBox .DateCreated 'Erstelldatum MsgBox .DateLastModified 'Änderungsdatum MsgBox .DateLastAccessed 'Datum letzter Zugriff MsgBox .Size 'Dateigröße in Byte End With End Function
Weitere Eigenschaften z.B. sind:
- .Attributes ‚Dateiattribut
- .DriveLetter ‚Laufwerk
- .Name ‚Dateiname ohne Pfad
- .Path ‚Dateiname mit Pfad
- .ShortName ‚Dateiname ohne Pfad in Kurzform
- .ShortPath ‚Dateiname mit Pfad in Kurzform
- .Type ‚Dateityp, z.B. „Microsoft Word-Document“
B) Dateieigenschaften von Microsoft Word Dateien.
Um spezielle Microsoft Word Eigenschaften auszulesen benötigt man eine spezielle DLL die Microsoft kostenlos zur Verfügung stellt: dsofile.dll In der Datenbank ist diese DLL als Verweiss einzubinden. Danach kann man per Code auf das DSO Objekt zugreifen. Hier z.B. wird anhand des Dateinamens (FilePath) der Autor ermittelt.
Function getWordProperties(FilePath As String) Dim SumProperties As DSOFile.SummaryProperties Dim DocProperties As DSOFile.OleDocumentProperties Set DocProperties = New DSOFile.OleDocumentProperties DocProperties.Open FilePath, True, dsoOptionOpenReadOnlyIfNoWriteAccess Set SumProperties = DocProperties.SummaryProperties MsgBox SumProperties.Author End Function
sehr gut – genau was ich gesucht habe.