VBA – GetFolder & GetFile (Datei- & Ordnereigenschaften abrufen)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 14, 2022

In diesem Tutorial zeigen wir Ihnen, wie Sie die Methoden GetFolder und GetFile des FileSystemObjects  verwenden können.

Ordner- und Dateieigenschaften mit VBA-FileSystemObject abrufen

Die GetFolder-Methode gibt ein Ordnerobjekt, das dem Ordner im angegebenen Pfad entspricht, zurück und ermöglicht den Zugriff auf seine Eigenschaften. Die GetFile-Methode macht dasselbe mit der angegebenen Datei.

VBA-Verweis setzen

Wenn Sie FileSystemObject verwenden, müssen Sie zunächst einen Verweis auf die VB-Skript-Laufzeitbibliothek setzen. Dazu Öffnen Sie den Visual Basic Editor (ALT+F11), wählen Sie Verweise im Dropdown-Menü Extras und aktivieren Sie das Kontrollkästchen „Microsoft Scripting Runtime“.

verweise microsoft scripting runtime

 

FileSystemObject

Zweitens müssen Sie das FileSystemObject erstellen:

Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")

Jetzt haben Sie Zugriff auf GetFolder und die anderen FileSystemObject-Methoden.

Verwendung der GetFolder-Methode

Nachdem Sie den Ordner, auf den Sie zugreifen möchten, angegeben haben,

Set ordner = FSO.GetFolder("C:\Quelle\")

können Sie den Ordner kopieren:

ordner.Copy "C:\NeuerOrdner\"

den Ordner verschieben:

ordner.Move "C:\NeuerOrdner\"

den Ordner löschen:

ordner.Delete

oder  eine neue Textdatei in diesem Ordner erstellen:

ordner.CreateTextFile "NeueTextDatei.txt"

Mit dieser Methode erhalten Sie Zugriff auf die Eigenschaften des Ordners wie seine Attribute (ordner.Attributes), das Datum und die Uhrzeit, wann er erstellt wurde (ordner.DateCreated), wann zuletzt darauf zugegriffen wurde (ordner.DateLastAccessed), wann er zuletzt geändert wurde (ordner.DateLastModified), den Laufwerksbuchstaben (ordner.Drive), seinen Namen und Kurznamen (ordner.Name, fld.ShortName), sein Pfad und Kurzpfad (ordner.Path, ordner.ShortPath), seine Größe (ordner.Size), sein Typ (ordner.Type), sein übergeordneter Ordner (ordner.ParentFolder), die Überprüfung, ob es sich um einen Stammordner handelt (ordner.IsRootFolder), oder Sie können seine Dateien (ordner.Files) oder Unterordner (ordner.SubFolders) in einer Schleife durchgehen, zählen, usw..

Wenn wir das alles in einer Prozedur zusammenfasst, würde es so aussehen:

Sub FSOGetFolder()
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set ordner = FSO.GetFolder("C:\Quelle\")

    Debug.Print ordner.DateCreated
    Debug.Print ordner.Drive
    Debug.Print ordner.Name
    Debug.Print ordner.ParentFolder
    Debug.Print ordner.Path
    Debug.Print ordner.ShortPath
    Debug.Print ordner.Size
    Debug.Print ordner.Files.Count
    Debug.Print ordner.Type

    For Each unterordner In ordner.SubFolders
        Debug.Print unterordner.Name
    Next unterordner

    For Each datei In ordner.Files
        Debug.Print datei.Name
    Next datei

End Sub

Bitte beachten Sie, dass Sie Strg + G drücken können, um das Ergebnis von Debug.Print im VBA-Direktfenster zu sehen.

Die GetParentFolderName-Methode

Alternativ zur oben genannten Methode können Sie den Namen des übergeordneten Ordners mit diesem Code abrufen:

Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
Uebergeordneter_Ordner= FSO.GetParentFolderName("C:\Uebergeordneter_Ordner_Test\Test\")

Uebergeordneter_Ordner wird in diesem Fall „C:\Uebergeordneter_Ordner_Test\“ sein.

Bitte beachten Sie, dass diese Methode den Pfad nicht auflöst und auch nicht prüft, ob der angegebene Pfad existiert.

Die GetSpecialFolder-Methode

Mit der Methode GetSpecialFolder können Sie durch die Übergabe von 0, 1 oder 2 als Argument den Windows-Ordnerpfad (mit den vom Windows-Betriebssystem installierten Dateien), den Systemordnerpfad (mit Bibliotheken, Schriftarten und Gerätetreibern) bzw. den Pfad des temporären Ordners (der Ordner, in dem temporäre Dateien gespeichert werden) ermitteln.

Sub FSOGetSpecialFolder()
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject")

    Debug.Print FSO.GetSpecialFolder(0) 'Ergebnis kann Folgendes sein: C:\Windows\System32

End Sub

Die GetFile-Methode

Sie können die GetFile-Methode auf ähnliche Weise wie die GetFolder-Methode verwenden. Nachdem Sie die Datei, auf die Sie zugreifen möchten, angegeben haben,

Set datei = FSO.GetFile("C:\Quelle\Test.xlsx")

können Sie die Datei kopieren:

datei.Copy "C:\Ziel\"

die Datei verschieben:

datei.Move "C:\Ziel\"

löschen Sie die Datei:

datei.Delete

oder sie als TextStream-Objekt öffnen:

datei.OpenAsTextStream

Auf die Eigenschaften der Datei wie ihre Attribute, das Datum und die Uhrzeit der Erstellung, des letzten Zugriffs oder der letzten Änderung, den Laufwerksbuchstaben, den Namen und den Kurznamen, den Pfad und den Kurzpfad, die Größe, den Typ und den übergeordneten Ordner kann auf dieselbe Weise wie bei der GetFolder-Methode beschrieben zugegriffen werden.

vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples