- Verwendung des FileSystemObjects (FSO) in Excel VBA
- Erstellen eines FileSystemObjects
- Verwenden der ‚Exists‘-Methoden
- Verwendung der ‚Get‘-Methoden
- GetAbsolutePathname
- GetBaseName
- GetDriveName
- GetExtensionName
- GetFile
- GetFolder
- GetParentFolderName
- Verwenden der ‚Create‘-Methoden
- CreateFolder
- CreateTextFile
- Verwenden der ‚Copy‘-Methoden
- CopyFile
- CopyFolder
- Verwenden der ‚Verschieben‘-Methoden
- MoveFile
- MoveFolder
- Verwendung der ‚Delete‘-Methoden
- DeleteFile
- DeleteFolder
- Sonstige Methoden in der FSO
- OpenAsTextStream.
- BuildPath
- OpenTextFile
- Eigenschaften des FSO
- Drives
- Name
- Pfad
- Größe
- Type
Verwendung des FileSystemObjects (FSO) in Excel VBA
Das FileSystemObject (FSO) gibt Ihnen Zugriff auf eine ganze Reihe von Funktionen für den Zugriff auf das Dateisystem Ihres Computers. Mit diesem Objekt können Sie auf einfache Weise auf Dateien, Ordner und Laufwerke zugreifen sowie Dateien lesen und beschreiben.
Viele der FSO-Funktionen könnten von Ihnen in herkömmlichem VBA geschrieben werden, würden aber mehr Codierung erfordern und wären für einen neuen Entwickler schwieriger zu pflegen und zu verstehen. Die BFS ist eine bewährte API (Application Programming Interface) und zuverlässiger als Ihr eigener Code. Sie ist einfach zu benutzen und sofort verfügbar.
Die BFS arbeitet mit internationalen Standards und Einstellungen, die Sie auf Ihrem Computer haben. Wenn Sie Ihre Excel-Anwendung weltweit vertreiben, können Sie mit der BFS alle Unterschiede in den Einstellungen zwischen den Ländern ausgleichen, was mit Ihrem eigenen Code nur schwer möglich wäre.
Die BFS ermöglicht es Ihnen, fast alles in VBA-Code zu tun, was Sie auch im Windows File Explorer tun könnten. Es gibt Ihnen vollständigen Zugriff auf das Windows-Dateisystem.
Erstellen eines FileSystemObjects
Das FileSytemObject ist nicht Teil von Excel VBA. Sie können das FSO verwenden, indem Sie ein Objekt (späte Bindung) in VBA erstellen:
Sub CreateFSO()Set MyFSO = CreateObject("Scripting.FileSystemObject")End Sub
Alternativ können Sie in VBA einen Verweis auf die FSO-Bibliothek hinzufügen. Dies wird als frühes Binden bezeichnet und ist schneller als spätes Binden, da das Objekt nicht erstellt werden muss, wenn Ihr Code ausgeführt wird.
Um eine Referenz hinzuzufügen, müssen Sie Alt-F11 drücken, um den Visual Basic Editor (VBE) aufzurufen, und dann „Tools|Referenzen“ aus dem VBE-Menü verwenden. Daraufhin wird ein Popup-Fenster angezeigt, in dem Sie die entsprechende Referenz auswählen können (siehe unten).
Scrollen Sie in der Liste der verfügbaren Referenzen nach unten, bis Sie „Microsoft Scripting Runtime“ sehen. Aktivieren Sie das Kontrollkästchen und klicken Sie auf OK. Die Bibliothek ist nun Teil Ihrer Anwendung.
Der Speicherort der DLL-Bibliotheksdatei ist C:\Windows\SysWOW64\scrrun.dll
Wenn Sie Ihre Anwendung an andere Kollegen oder Standorte weitergeben, ist es wichtig, dass sich diese Datei am richtigen Ort auf ihrem Computer befindet, da Ihr Code sonst fehlerhaft ist.
Es lohnt sich, eine Fehlerfalle für das Ereignis „WorkbookOpen“ mit dem Befehl Dir zu erstellen, um zu prüfen, ob die Datei vorhanden ist. Wenn sie nicht vorhanden ist, geben Sie eine Warnmeldung aus und schließen Sie die Excel-Datei.
Nachdem der Verweis hinzugefügt wurde, können Sie den folgenden Code verwenden, um das FSO zu erstellen:
Sub TestFSO()Dim MyFSO As New FileSystemObjectEnd Sub
Alle Beispiele in diesem Artikel verwenden diese Methodik, um das FSO zu erstellen.
Das FSO verfügt über viele Methoden und Eigenschaften. Diese werden hier in Abschnitte unterteilt, je nachdem, was sie tun können.
Verwenden der ‚Exists‘-Methoden
Sie können eine BFS-Methode verwenden, um zu prüfen, ob ein Laufwerk, ein Ordner oder eine Datei existiert. Diese Methoden sind einfach zu verwenden und erfordern nur einen Parameter.
Sub CheckExistance()Dim MyFSO As New FileSystemObjectMsgBox MyFSO.DriveExists("C:")MsgBox MyFSO.FolderExists("C:\temp\")MsgBox MyFSO.FileExists("C:\temp\testfile.txt")End Sub
Diese Anweisungen geben alle ‚True‘ zurück, wenn angenommen wird, dass Ihr Computer ein Laufwerk C:, einen Ordner mit dem Namen ‚Temp‘ und eine Datei im Temp-Ordner mit dem Namen ‚testfile.txt‘ hat.
Die Textzeichenfolgen in den Parametern unterscheiden nicht zwischen Groß- und Kleinschreibung. Sie können in keiner dieser Methoden Platzhalter verwenden.
Sie können auch keine URLs (Uniform Resource Locators) verwenden, um einen Ordner oder eine Datei zu beschreiben. Das BFS arbeitet ausschließlich mit dem Windows-Betriebssystem und dem darauf befindlichen Dateisystem. Für einen externen Serverstandort müssen Sie diesem zunächst ein Laufwerk zuordnen und dann den Laufwerkspfad selbst verwenden.
Verwendung der ‚Get‘-Methoden
Das BFS verfügt über zahlreiche Methoden, um Informationen über die Datei und den Pfad zu erhalten, entweder durch Aufteilung des Pfades und der Datei oder durch Abrufen von Datei- oder Ordnerinformationen wie Erstellungsdatum oder Änderungsdatum.
GetAbsolutePathname
Dies liefert einen vollständigen Pfad vom Stamm des angegebenen Laufwerks.
Syntax ist:
GetAbsolutePathName (pathspec)
Sub AbsolutePath()Dim MyFSO As New FileSystemObject, Pth As StringPth = "c:..."MsgBox MyFSO.GetAbsolutePathName(Pth)End Sub
Dies gibt eine Zeichenfolge ‚C:\Benutzer\Richard\Dokumente‘ zurück. Dies liegt daran, dass der Pfad als C:, gefolgt von drei Punkten, angegeben wurde. Jeder Punkt bedeutet eine weitere Ebene innerhalb der Ordnerstruktur.
GetBaseName
Dies gibt den Namen einer angegebenen Datei oder eines Ordners zurück.
Die Syntax lautet:
GetBaseName (Pfad)
Sub BaseName()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\testfile.txt"MsgBox MyFSO.GetBaseName(Pth)End Sub
Dieser Code gibt ‚testfile‘ zurück. Die Methode gibt den letzten Abschnitt des Pfadnamens zurück. Wenn es sich um eine Datei handelt, wird das Dateisuffix nicht zurückgegeben.
Wenn der Pfad nicht gefunden werden kann, wird eine leere Zeichenkette zurückgegeben.
GetDrive
Dieser Code ermöglicht den Zugriff auf Laufwerksinformationen, basierend auf dem angegebenen Laufwerksbuchstaben.
Syntax ist:
GetDrive (drivespec)
Sub DriveInfo()Dim MyFSO As New FileSystemObject, Pth As String, Dr As DrivePth = "C:"Set Dr = MyFSO.GetDrive(Pth)MsgBox Dr.FreeSpaceEnd Sub
Diese Methode gibt ein Laufwerksobjekt basierend auf dem angegebenen Laufwerk zurück. Sie können dieses Objekt verwenden, um auf Informationen über das Laufwerk zuzugreifen, wie z.B. den verfügbaren freien Speicherplatz.
GetDriveName
Diese Methode trennt den Laufwerksnamen aus einer Pfad-/Dateinamen-Zeichenkette heraus.
Syntax ist:
GetDriveName (path)
Sub DriveName()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\testfile.txt"MsgBox MyFSO.GetDriveName(Pth)End Sub
Dies gibt ‚C:‘
GetExtensionName
Dies gibt das Dateisuffix im angegebenen Pfad zurück.
Syntax ist:
GetExtensionName (path)
Sub ExtensionName()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\testfile.txt"MsgBox MyFSO.GetExtensionName(Pth)End Sub
Dies gibt ‚txt‘ zurück.
Wenn keine Datei angegeben ist, wird ein leerer String zurückgegeben.
GetFile
Diese Methode gibt ein Dateiobjekt zurück, das verschiedene Informationen über die Datei selbst enthält.
Syntax ist:
GetFile (filespec)
Sub FileInfo()Dim MyFSO As New FileSystemObject, Pth As String, Fn As FilePth = "C:\temp\testfile.txt"Set Fn = MyFSO.GetFile(Pth)MsgBox Fn.DateCreatedEnd Sub
Dies gibt das Datum und die Uhrzeit zurück, zu der die angegebene Datei erstellt wurde. Wenn keine Datei angegeben ist oder die Datei nicht existiert, erhalten Sie eine Fehlermeldung ‚Datei nicht gefunden‘.
Sub FileName()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\testfile.txt"MsgBox MyFSO.GetFileName(Pth)End Sub
Dies gibt ‚testfile.txt‘ zurück.
GetFolder
Dies erzeugt ein Ordnerobjekt für den Basisordner im angegebenen Pfad. Der Pfad darf nur Ordnernamen enthalten. Es dürfen keine Dateinamen enthalten sein, sonst tritt ein Fehler auf.
Die Syntax lautet:
GetFolder (folderspec)
Sub FolderInfo()Dim MyFSO As New FileSystemObject, Pth As String, Fo As FolderPth = "C:\temp"Set Fo = MyFSO.GetFolder(Pth)MsgBox Fo.DateCreatedEnd Sub
Das Ordnerobjekt enthält verschiedene Informationen, auf die zugegriffen werden kann. In diesem Fall wird das Datum zurückgegeben, an dem der Ordner erstellt wurde.
Sie können diese Methode auch verwenden, um alle Dateinamen innerhalb eines bestimmten Ordners abzurufen:
Sub FileNames()Dim MyFSO As New FileSystemObject, Pth As String, Fo As Folder, Fn As FilePth = "C:\temp"Set Fo = MyFSO.GetFolder(Pth)For Each Fn In Fo.Files MsgBox Fn.NameNext FnEnd Sub
Dieser Code durchläuft den Ordner „Temp“ und zeigt jeden gefundenen Dateinamen an.
GetParentFolderName
Diese Methode gibt den Ordnernamen der nächsthöheren Ebene in der Ordnerhierarchie zurück.
Syntax ist:
GetParentFolderName (path)
Sub FolderName()Dim MyFSO As New FileSystemObject, Pth As String, Fo As FolderPth = "C:\users\richard"MsgBox MyFSO.GetParentFolderName(Pth)End Sub
Dies wird ‚Users‘ zurückgeben, da dies der ‚Parent‘ für den Ordner ‚richard‘ ist.
Verwenden der ‚Create‘-Methoden
Mit dem BFS können Sie einen neuen Ordner und Pfad erstellen und eine Textdatei erzeugen.
CreateFolder
Sie können einen neuen Ordner-Pfadnamen angeben, der erstellt werden soll. Die Gefahr dabei ist, dass, wenn der Ordner bereits existiert, ein Fehler auftritt. Sie können die Methode ‚FolderExists‘ verwenden, um sicherzustellen, dass dies nicht passiert.
Die Syntax lautet:
CreateFolder (foldername)
Sub CreateNewFolder()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\MyFolder"If MyFSO.FolderExists(Pth) = False Then MyFSO.CreateFolder (Pth)End IfEnd Sub
Dieser Code erstellt einen neuen Ordner namens ‚MyFolder‘ unter dem bestehenden Pfad ‚C:\temp‘.
CreateTextFile
Mit dieser Methode kann man eine einfache Textdatei erstellen und direkt in diese schreiben.
Syntax ist:
CreateTextFile (filename, ])
Sub CreateTextFile()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\Myfile.txt"Set Fn = MyFSO.CreateTextFile(Pth,True)Fn.Write "Add my own text here" & vbLf & "This is the second line"Fn.CloseEnd Sub
Dieser Code erstellt eine Textdatei mit dem Namen ‚Myfile.txt‘ im Ordner ‚Temp‘ des Laufwerks ‚C:‘ und schreibt dann zwei Textzeilen in diese Datei.
Beachten Sie, dass ein Zeilenvorschubzeichen in die zu schreibende Zeichenkette eingefügt wird.
Wenn der Pfad, in den Sie schreiben, nicht existiert, wird ein Fehler auftreten. Sie können die Methode „FolderExists“ verwenden, um dies zu überprüfen, bevor Sie die Datei erstellen.
Es gibt einen optionalen Parameter, um die vorhandene Datei bei Bedarf zu überschreiben – dies kann True oder False sein. Die Voreinstellung ist True.
Verwenden der ‚Copy‘-Methoden
Mit diesen Methoden können Sie eine Datei oder einen Ordner an einen anderen Ort kopieren.
CopyFile
Diese Methode kopiert eine Datei von einem Ordner an einen anderen Ort. Beachten Sie, dass der Kopiervorgang fehlschlägt, wenn für den Zielordner das Attribut „schreibgeschützt“ gesetzt ist.
Die Syntax lautet:
CopyFile source, destination,
Sub CopyFile()Dim MyFSO As New FileSystemObjectMyFSO.CopyFile "C:\temp\*.txt", "C:\temp\myfolder\", TrueEnd Sub
Dieser Code erstellt eine Kopie aller Textdateien (txt) unter „C:\temp“ in „C:\temp\myfolder\“ und überschreibt die Datei, wo nötig. Die Standardeinstellung für Überschreiben ist Wahr.
Sie können einen Stern (*) als Platzhalter für die Dateinamen verwenden, aber Sie können kein Fragezeichen (?) als Platzhalter für einzelne Zeichen verwenden.
CopyFolder
Mit dieser Methode können Sie einen ganzen Ordner von einem Ort zu einem anderen kopieren.
Die Syntax lautet:
CopyFolder source, destination,
Sub CopyFolder()Dim MyFSO As New FileSystemObjectMyFSO.CopyFolder "C:\temp\*", "C:\users\richard\"End Sub
Dieser Code kopiert alle Ordner und Dateien unterhalb von ‚C:\temp‘ in ‚C:\users\richard‘. Der neu erstellte Ordner heißt ‚C:\users\richard\myfolder‘, da sich in ‚C:\temp‘ ein Ordner mit dem Namen ‚myfolder‘ befand.
Bei dieser Methode gibt es vier mögliche Ergebnisse:
- Wenn der Zielordner nicht existiert, wird der Quellordner samt Inhalt kopiert.
- Wenn das Ziel bereits existiert, tritt ein Fehler auf.
- Wenn das Ziel ein Ordner ist, werden der Quellordner und sein Inhalt kopiert. Ein Fehler tritt auf, wenn Overwrite auf False gesetzt ist und es bereits eine Kopie einer Datei im Ziel gibt.
- Wenn das Ziel auf Read Only gesetzt ist, tritt ein Fehler auf, wenn Overwrite auf False gesetzt ist.
Diese Methode stoppt beim ersten Fehler, auf den sie trifft. Alle Aktionen, die vor dem Auftreten des Fehlers erfolgreich waren, werden nicht rückgängig gemacht.
Verwenden der ‚Verschieben‘-Methoden
Diese Methoden können verwendet werden, um Dateien oder Ordner an andere Orte zu verschieben. Dies ist dasselbe wie das Ausschneiden von einem Ort und das Einfügen an einem anderen Ort. Wenn die zu verschiebende Datei geöffnet ist, schlägt die Move-Methode mit einem Fehler fehl.
MoveFile
Mit dieser Methode wird eine bestimmte Datei an einen anderen Ort verschoben. Wildcards sind in der letzten Pfadkomponente der Quelle erlaubt.
Syntax ist:
MoveFile source, destination
Sub MoveAFile()Dim MyFSO As New FileSystemObjectMyFSO.MoveFile "C:\temp\*", "C:\temp\myfolder"End Sub
Dieser Code verschiebt alle Dateien, die unter ‚C:\temp‘ gefunden wurden, in ‚C:\temp\myfolder‘.
Der Quell- und der Zielordner müssen vorhanden sein, da der Zielordner nicht automatisch erstellt wird.
Diese Methode bricht beim ersten Fehler ab, auf den sie trifft. Es gibt kein Rollback von Aktionen, die vor dem Auftreten des Fehlers erfolgreich waren.
MoveFolder
Diese Methode verschiebt einen bestimmten Ordner von einem Ort zu einem anderen.
Syntax ist:
MoveFolder (source, destination)
Sub MoveAFolder()Dim MyFSO As New FileSystemObjectMyFSO.MoveFolder "C:\temp\myfolder", "C:\temp\mydestination"End Sub
Dieser Code verschiebt den Ordner ‚myfolder‘ und dessen Inhalt in den Ordner ‚mydestination‘. ‚meinOrdner‘ wird effektiv gelöscht und ‚meinZiel‘ wird zusammen mit dem Inhalt von ‚meinOrdner‘ erstellt.
Wenn der Zielordner bereits existiert, tritt ein Fehler auf.
Verwendung der ‚Delete‘-Methoden
Diese Methoden werden zum Löschen von Dateien oder Ordnern verwendet. Sie müssen mit Vorsicht verwendet werden, da es keine Rollback- oder Undo-Methoden gibt, wenn etwas schief geht.
DeleteFile
Dies löscht einzelne Dateien oder eine Gruppe von Dateien unter Verwendung von Wildcards.
Die Syntax lautet:
DeleteFile filespec,
Sub DeleteFiles()Dim MyFSO As New FileSystemObjectMyFSO.DeleteFile "C:\temp\*"End Sub
Dieser Code löscht alle Dateien im Ordner ‚C:\temp‘
Der Parameter Force ist optional und wird auf True oder False gesetzt. Wenn er auf True gesetzt ist, werden schreibgeschützte Dateien gelöscht. Der Standardwert ist False.
DeleteFolder
Diese Methode löscht einen angegebenen Ordner und seinen Inhalt.
Syntax ist:
DeleteFolder folderspec,
Sub DeleteFolders()Dim MyFSO As New FileSystemObjectMyFSO.DeleteFolder "C:\temp\MyDestination"End Sub
Dieser Code löscht den Ordner ‚MyDestination‘ und alle Dateien in diesem Ordner. Der Ordner ‚temp‘ bleibt erhalten.
Der Parameter Force ist optional und wird auf True oder False gesetzt. Wenn er auf True gesetzt ist, werden schreibgeschützte Ordner gelöscht. Die Voreinstellung ist False.
In der letzten Komponente des Pfades können Wildcards verwendet werden. Wenn der Ordner nicht gefunden wird, tritt ein Fehler auf.
Diese Methode stoppt beim ersten Fehler, der auftritt. Es gibt kein Rollback von Aktionen, die vor dem Auftreten des Fehlers erfolgreich waren.
Sonstige Methoden in der FSO
OpenAsTextStream.
Diese Methode öffnet eine angegebene Datei als Text-Stream-Objekt und erlaubt es, sie zu lesen oder zu beschreiben. Der Vorteil dieser Methode ist, dass sie jeden Dateityp öffnen und den verfügbaren Text extrahieren kann.
Syntax ist:
OpenAsTextStream (])
Der Parameter ‚iomode‘ erlaubt nur lesen (1), lesen/schreiben (2) und anhängen (8). Der ‚read/write‘-Parameter überschreibt die Datei.
Der ‚format‘-Parameter ist auf -2 für die Systemvorgabe, -1, um die Datei als Unicode zu öffnen, und 0, um die Datei als ASCII (American Standard Code for Information Interchange) zu öffnen.
Sub TextStream()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")Set ts = f.OpenAsTextStream(2)ts.Write "My new text"ts.CloseSet ts = f.OpenAsTextStream(1)s = ts.ReadLineMsgBox sts.CloseEnd Sub
Dieser Code ruft eine vorhandene Textdatei ab und erstellt sie als Objekt mit der Methode ‚GetFile‘. Dann wird der Textstrom als read / write (2) geöffnet und eine Textzeile geschrieben. Die Datei wird dann geschlossen und erneut als read (1) geöffnet und eine Zeile daraus gelesen, die dann als Messagebox angezeigt wird.
Beachten Sie, dass die gelesene Zeile in eine Variable gesetzt werden muss, bevor sie in einer Messagebox angezeigt werden kann.
BuildPath
Diese Methode fügt einen Ordner- oder Dateinamen an das Ende eines bestehenden Ordnerpfades an. Dabei wird nur eine Textzeichenfolge erstellt und nicht der neue Ordner selbst.
Die Syntax lautet:
BuildPath (path, name)
Sub BuildPth()Dim MyFSO As New FileSystemObjectnp = MyFSO.BuildPath("C:\temp", "ANewFolder")MsgBox npEnd Sub
Dadurch wird ‚C:\temp\ANewFolder‘ angezeigt. Wenn Sie diesen Ordner jedoch tatsächlich benutzen wollen, müssen Sie die Methode ‚CreateFolder‘ verwenden.
OpenTextFile
Mit dieser Methode können Dateien geöffnet und entsprechend den eingestellten Parametern gelesen oder geschrieben werden. Sie funktioniert ähnlich wie die Methode OpenAsTextStream.
Syntax ist:
OpenTextFile (filename, ]])
Der Parameter ‚iomode‘ erlaubt ForReading, ForWriting und ForAppending. Der Parameter ‚ForWriting‘ überschreibt die Datei.
Der Parameter ‚create‘ ist ein boolescher Wert. True bedeutet, dass eine neue Datei erstellt wird, wenn der angegebene Dateiname nicht existiert. False bedeutet, dass keine Datei erstellt wird, wenn der Dateiname nicht gefunden wird. Der Standardwert ist False.
Der Parameter ‚format‘ kann auf TristateFalse, TristateMixed, TristateTrue und TristateUseDefault gesetzt werden, je nachdem, ob die Datei ASCII oder Unicode ist.
Sub OpenTxtFile()Dim MyFSO As New FileSystemObjectSet ts = MyFSO.OpenTextFile("C:\temp\myfile.txt", ForReading, False, TristateUseDefault)s = ts.ReadLineMsgBox sts.CloseEnd Sub
Dieser Code liest eine Zeile aus der Textdatei ‚myfile.txt‘.
Ein Vorteil, den die OpenTextFile-Methode gegenüber der OpenAsTextStreamMethode hat, ist, dass sie Dropdowns für die Parameter hat, die sinnvoller sind, als zu versuchen, sich die entsprechenden numerischen Werte für die verschiedenen Parameteroptionen zu merken.
Eigenschaften des FSO
Drives
Diese Eigenschaft enthält eine Sammlung der verfügbaren Laufwerke auf Ihrem Computer.
Sub Drv()Dim MyFSO As New FileSystemObject, d As DriveSet Dr = MyFSO.DrivesFor Each d In Dr MsgBox d.DriveLetterNext dEnd Sub
Dieser Code gibt jeden auf dem Computer verfügbaren Laufwerksbuchstaben zurück.
Name
Dieser Code gibt den Namen einer angegebenen Datei oder eines Ordners zurück.
Sub NameExample()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")i = f.Name & " on Drive " & UCase(f.Drive) & vbCrLfi = i & "Created: " & f.DateCreated & vbCrLfi = i & "Last Accessed: " & f.DateLastAccessed & vbCrLfi = i & "Last Modified: " & f.DateLastModifiedMsgBox iEnd Sub
Dieser Code gibt den Namen der Datei und Informationen über sie mithilfe der Eigenschaft Laufwerk an.
Pfad
Die Eigenschaft Pfad trennt den Pfad von einer Dateispezifikation.
Sub PathExample()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")i = f.Path & f.Name & " on Drive " & UCase(f.Drive) & vbCrLfi = i & "Created: " & f.DateCreated & vbCrLfi = i & "Last Accessed: " & f.DateLastAccessed & vbCrLfi = i & "Last Modified: " & f.DateLastModifiedMsgBox iEnd Sub
Dieses Beispiel funktioniert auf die gleiche Weise wie das Beispiel Name, nur dass es jetzt den Pfad für die Datei angibt.
Größe
Die Eigenschaft Größe gibt die Größe eines Ordners oder einer Datei an.
Sub FSize()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFolder("C:\temp\")MsgBox f.SizeEnd Sub
Dieser Code oben gibt die Größe des Ordners ‚C:\temp\‘ zurück.
Sub FSize()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")MsgBox f.SizeEnd Sub
Dieser Code oben gibt die Größe der Datei ‚myfile.txt‘.
Type
Die Type-Eigenschaft gibt den Text für den Datei- oder Ordnertyp zurück.
Sub FType()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFolder("C:\temp\")MsgBox f.TypeEnd Sub
Dieser Code oben gibt den Text ‚File folder‘ zurück.
Sub FType()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")MsgBox f.TypeEnd Sub
Dieser Code oben gibt den Text ‚Text document‘ zurück.
Beachten Sie die Verwendung von ‚GetFolder‘ und ‚GetFile‘ in jedem Beispiel.