Kapitel 11: Dateien und Verzeichnisse
Abbildung 11.1 Einbinden der Microsoft Scripting Runtime
Nachfolgend können Sie eine erste Instanz der Klasse FileSystemObject erzeugen. An dieser Stelle scheiden
sich allerdings die Geister daran, wie das Objekt erzeugt werden soll. Grundsätzlich sollten Sie Objekte mit
CreateObject nur dann erzeugen, wenn sie wirklich gebraucht werden. Aus Bequemlichkeitsgründen kön-
nen wir beim übergeordneten FSO jedoch darauf verzichten und den einfacheren Weg einschlagen:
Public myfso As New FileSystemObject ' in einem BAS-Modul
Um die Freigabe des Objekts brauchen wir uns nicht weiter zu kümmern, mit dem Programmende wird
auch die Instanz freigegeben. Etwas anders liegt der Fall bei der Arbeit mit ASP-Dateien bzw. VBScript.
Hier bleibt uns nichts anderes übrig, als mit
Dim myfso
Set myfso = CreateObject("Scripting.FileSystemObject")
...
Set myfso = Nothing
die Instanz zu erstellen bzw. zu löschen.
Zugriff auf das Dateisystem
Statt einer Liste aller Eigenschaften, Methoden und Collections möchten wir Ihnen an einigen praktischen
Einsatzfällen die Verwendung der FSO verdeutlichen. Wofür früher vielfach API-Funktionen mit endlosen
Parameterlisten bemüht werden mussten, ist jetzt ohne Probleme eine Eigenschaft abrufbar.
Ermitteln aller Laufwerke und deren Eigenschaften
Ausgehend von einem initialisierten FileSystemObject können Sie mit Hilfe der Drives-Collection alle nöti-
gen Informationen über die vorhandenen Laufwerke sowie deren Eigenschaften gewinnen. Einziger Weg
um auf die einzelnen Elemente der Auflistung zuzugreifen ist das For Each-Konstrukt. Obwohl es eine
Count-Eigenschaft gibt, kann nicht über einen Index auf einzelne Laufwerke zugegriffen werden.
688
BEISPIEL
HINWEIS
Anzeige aller Laufwerke zzgl. Eigenschaften
Sub Test()
Dim myfso As FileSystemObject
Dim mydrive As Drive
Objekt erstellen:
Set myfso = CreateObject("Scripting.FileSystemObject")
Collection durchlaufen:
For Each mydrive In myfso.Drives
If mydrive.IsReady Then
Debug.Print mydrive.DriveLetter & ": [" & mydrive.VolumeName & "]"
Debug.Print " Dateisystem :" & mydrive.FileSystem
Debug.Print " Laufwerksystyp :" & Choose(mydrive.DriveType+1, "Unknown", _
"Removable", _
"Fixed", _
"Network", _
"CD-ROM", _
"RAM Disk")
Debug.Print " Speicher verfügbar:" & CStr(mydrive.AvailableSpace)
Debug.Print " Speicher frei :" & CStr(mydrive.FreeSpace)
Debug.Print " Speicher gesamt :" & CStr(mydrive.TotalSize)
Debug.Print " Seriennummer :" & CStr(mydrive.SerialNumber)
Else
Debug.Print mydrive.DriveLetter & ": Kein Datenträger"
End If
Next
Set myfso = Nothing
End Sub
Das Resultat im Direktfenster (Aufruf mit
Strg
+
G
):
Abbildung 11.2 Beispielausgabe im Direktfenster
Achten Sie darauf, mit IsReady die Bereitschaft des Laufwerks zu testen!
689
Zugriff auf das Dateisystem

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.