window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Das FileSystemObject: Dateien

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Die VBA-eigenen Befehle wie Dir, MkDir, Kill, Copy und so weiter erlauben grundlegende Dateioperationen. Wenn es etwas komfortabler sein darf, gibt es jedoch noch andere Möglichkeiten. Eine davon ist die Klasse FileSystemObject, die Sie in der Bibliothek Microsoft Scripting Runtime finden. Im Artikel Das FileSystemObject: Verzeichnisse haben wir die Grundlagen zu dieser Bibliothek und zum Umgang mit Laufwerken und Verzeichnissen erläutert. Dieser Artikel zeigt, welche Möglichkeiten diese Bibliothek im Hinblick auf den Umgang mit Dateien bietet.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1902_FileSystemObject_Files.accdb.

Der oben genannte Artikel hat die Grundlagen zum FileSystemObject und zu den Auflistungen Drives und Folders sowie den Klassen Drive und Folder erläutert. Nun gehen wir einen Schritt weiter und schauen uns an, wie wir mit den in den Verzeichnissen enthaltenen Dateien arbeiten können. Diese referenzieren wir über die Files-Auflistung beziehungsweise im Falle einer einzelnen Datei über die File-Klasse.

Schneller Zugriff auf ein FileSystemObject-Objekt

Wie schon im Artikel Das FileSystemObject: Verzeichnisse beschrieben, verwenden wir die folgende private Variable und die öffentliche Property Get-Prozedur, um schnell Zugriff auf eine Instanz der FileSystemObject-Klasse zu erhalten:

Private m_FSO As FileSystemObject
Public Property Get FSO() As FileSystemObject
    If m_FSO Is Nothing Then
        Set m_FSO = New FileSystemObject
    End If
    Set FSO = m_FSO
End Property

Sie können dann einfach über den Ausdruck FSO auf das FileSystemObject zugreifen – also etwa so:

Debug.Print FSO.Drives.Count

Dateien auflisten

Wenn wir Dateien auflisten wollen, benötigen wir zunächst ein Folder-Objekte, also ein Verzeichnis, in dem die zu untersuchenden Dateien enthalten sind. Wir beschäftigen uns mit dem Verzeichnis der aktuellen Datenbank, das wir mit dem VBA-Befehl CurrentProject.Path auslesen. Das dazugehörige Folder-Objekte erhalten wir mit der GetFolder-Methode:

Public Sub DateienAuflisten()
    Dim objFile As File
    Dim objFolder As Folder
    Set objFolder = FSO.GetFolder(CurrentProject.Path)
    For Each objFile In objFolder.Files
        Debug.Print objFile.Name
    Next objFile
End Sub

In der Prozedur ermitteln wir das Folder-Objekt und durchlaufen alle in der Files-Auflistung dieses Verzeichnisses enthaltenen File-Objekte. Wir geben zu jedem File-Objekt den Namen aus der Eigenschaft Name im Direktbereich aus. Auf die gleiche Weise können wir die folgenden Informationen des File-Objekts ausgeben lassen:

  • Attributes: Gibt einen Zahlenwert für verschiedene Attributwerte zurück.
  • DateCreated: Gibt das Erstellungsdatum zurück.
  • DateLastAccessed: Gibt das Datum des letzten Zugriffs zurück.
  • DateLastModified: Gibt das Datum der letzten änderung zurück.
  • Name: Gibt den Namen der Datei aus.
  • Path: Gibt den Pfad der Datei zurück.
  • ShortName: Gibt den Dateinamen im 8.3-Format zurück.
  • ShortPath: Gibt den Pfad zur Datei im 8.3-Format zurück.
  • Size: Gibt die Größe der Datei zurück.
  • Type: Gibt den Dateityp zurück.

Wenn Sie all diese Informationen für die Dateien aus der obigen Prozedur ausgeben wollen, erweitern Sie den Inhalt der For Each-Schleife wie folgt:

With objFile
    Debug.Print .Name, .Attributes, .DateCreated,           .DateLastAccessed, .DateLastModified, .Path,                            .ShortName, .ShortPath, .Type
End With

Für die Eigenschaft Type erhalten wir Texte wie etwa Microsoft Access Database, LACCDB-Datei oder Snagit Editor Image. Teilweise werden hier Typen ausgeben, die mit der standardmäßig zu öffnenden Anwendung zusammenhängen, teilweise nur die Dateiendung.

Eigenschaften mit Objekten

Es gibt zwei Eigenschaften, die Verweise auf Objekte zurückliefern:

  • Drive: Gibt das Drive-Objekt zu der Datei zurück.
  • ParentFolder: Gibt das Folder-Objekt zurück, in dem sich die Datei befindet.

Methoden und Funktionen des File-Objekts

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar