In diesem Tutorial wird gezeigt, wie Sie die Methoden GetFolder und GetFile des FileSystemObject verwenden.
Abrufen von Ordner- und Dateieigenschaften mit VBA FileSystemObject
Die GetFolder-Methode gibt ein Folder-Objekt zurück, das dem Ordner in einem angegebenen Pfad entspricht, und ermöglicht Ihnen den Zugriff auf seine Eigenschaften. Die Methode GetFile macht dasselbe mit der angegebenen Datei.
VBA-Referenz festlegen
Wenn Sie FileSystemObjects verwenden, müssen Sie möglicherweise zunächst eine Referenz auf die VB-Skript-Laufzeitbibliothek setzen: Öffnen Sie den Visual Basic-Editor (ALT+F11), wählen Sie Tools > References aus dem Dropdown-Menü und aktivieren Sie das Kontrollkästchen von 'Microsoft Scripting-Laufzeit'.
FileSystemObject
Zweitens müssen Sie das FileSystemObject erstellen:
12 | Dim FSO als neues FileSystemObjectFSO setzen = CreateObject("Scripting.FileSystemObject") |
Jetzt haben Sie Zugriff auf GetFolder und die anderen FileSystemObject-Methoden.
Verwendung der GetFolder-Methode
Nachdem Sie den Ordner angegeben haben, auf den Sie zugreifen möchten
1 | Setze fld = FSO.GetFolder("C:\Src\") |
du kannst es kopieren:
1 | fld.Copy "C:\NeuerOrdner\" |
verschieben:
1 | fld.Move "C:\NeuerOrdner\" |
Lösche es:
1 | fld.Löschen |
oder erstellen Sie darin eine neue Textdatei:
1 | fld.CreateTextFile „NewTextFile.txt“ |
Mit dieser Methode erhalten Sie Zugriff auf die Eigenschaften des Ordners wie seine Attribute (fld.Attributes), das Datum und die Uhrzeit der Erstellung (fld.DateCreated), den letzten Zugriff (fld.DateLastAccessed), die letzte Änderung (fld.DateLastModified ), seinen Laufwerksbuchstaben (fld.Drive), seinen Namen und seinen Kurznamen (fld.Name, fld.ShortName), seinen Pfad und seinen kurzen Pfad (fld.Path, fld.ShortPath), seine Größe (fld.Size), seine type (fld.Type), seinen übergeordneten Ordner (fld.ParentFolder), prüfen Sie, ob es sich um einen Stammordner (fld.IsRootFolder) handelt oder Sie können seine Dateien (fld.Files) oder Unterordner (fld.IsRootFolder) durchlaufen, zählen usw. Unterordner).
Dies alles in einer Prozedur zusammenzufassen, würde so aussehen:
123456789101112131415161718192021222324 | Unter FSOGetFolder()Dim FSO als neues FileSystemObjectFSO setzen = CreateObject("Scripting.FileSystemObject")Setze fld = FSO.GetFolder("C:\Src\")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print FeldnameDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld.TypeFür jede Faltung in fld.SubFoldersDebug.Print fold.NameNächste FalteFür jede Datei in fld.FilesDebug.Print-DateinameNächste DateiEnd Sub |
Bitte beachten Sie, dass Sie Strg+G drücken müssen, um das Ergebnis des Debug.Print-Befehls im VBA-Direktfenster anzuzeigen.
GetParentFolderName-Methode
Alternativ zur oben genannten Methode können Sie mit diesem Code auf den Namen des übergeordneten Ordners zugreifen:
1234 | Dim FSO als neues FileSystemObjectFSO setzen = CreateObject("Scripting.FileSystemObject")ParentFold= FSO.GetParentFolderName("C:\ParentTest\Test\") |
ParentFold ist in diesem Fall „C:\ParentTest\“.
Bitte beachten Sie, dass diese Methode weder den Pfad auflöst noch prüft, ob der angegebene Pfad existiert.
GetSpecialFolder-Methode
Mit der GetSpecialFolder-Methode können Sie durch Übergabe von 0, 1 oder 2 als Argument Ihren Windows-Ordnerpfad (mit Dateien, die vom Windows-Betriebssystem installiert werden), Ihren Systemordnerpfad (mit Bibliotheken, Schriftarten und Gerätetreibern) und temporär abrufen Ordnerpfad (der Ordner, der zum Speichern temporärer Dateien verwendet wird).
1234567 | Unter FSOGetSpecialFolder()Dim FSO als neues FileSystemObjectFSO setzen = CreateObject("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder(0) ‘Ergebnis kann sein: C:\Windows\System32End Sub |
GetFile-Methode
Sie können die GetFile-Methode auf sehr ähnliche Weise wie die GetFolder-Methode verwenden. Nachdem Sie die Datei angegeben haben, auf die Sie zugreifen möchten
1 | Set fil = FSO.GetFile("C:\Src\Test.xlsx") |
du kannst es kopieren:
1 | fil.Kopie "C:\Dst\" |
verschieben:
1 | fil.Move "C:\Dst\" |
Lösche es:
1 | fil.Löschen |
oder öffnen Sie es als TextStream-Objekt:
1 | fil.OpenAsTextStream |
Auf die Eigenschaften der Datei wie ihre Attribute, Datum und Uhrzeit der Erstellung, des letzten Zugriffs oder der letzten Änderung, Laufwerksbuchstabe, Name und Kurzname, Pfad und Kurzpfad, Größe, Typ und übergeordneter Ordner kann auf dieselbe Weise zugegriffen werden wie bei der GetFolder-Methode beschrieben.