Rubrik: Dateisystem · Dateien allgemein | VB-Versionen: VB5, VB6 | 26.11.03 |
Perfekte Funktion für das Dateisystem Perfekte Funktion für das Dateisystem (kopieren, löschen, verschieben, usw.) | ||
Autor: Heiko Faiss | Bewertung: | Views: 21.192 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Immer wieder sieht man Beispiele, in denen beispielsweise mehr oder weniger umständlich Dateien kopiert werden. Es gibt jedoch eine ganz einfache und superschnelle Möglichkeit, auf dem Dateisystem zu arbeiten.
Hierzu einfach folgenden Verweis aktivieren (Dialog "Projekt - Verweise"):
Microsoft Scripting Runtime
Nachfolgend ein paar Beispiele, die die Einfachheit des FileSystemObject-Objekts demonstrieren:
FSO-Objekte deklarieren
Dim oFSO As FileSystemObject Dim oFile As File Dim oDrive As Drive Dim oFolder As Folder ' Neues Objekt erstellen Set oFSO = New FileSystemObject
.. bis dahin mal. Jetzt ist die Scripting-Engine initialisiert. Tippen Sie jetzt einfach einmal
oFSO.ein und schauen dann, was es alles für Funktionen gibt.
Datei kopieren: (False = Nicht überschreiben, True = überschreiben)
oFSO.CopyFile "C:\autoexec.bat", "C:\autoexec.bak", False
Verzeichnis kopieren: (False = Nicht überschreiben, True = überschreiben)
oFSO.CopyFile "C:\MyFolder", "C:\MyFolderSave", False
Verzeichnis erstellen:
oFSO.CreateFolder "C:\MeinPfad"
usw... Die Funktionen sind wirklich einfach zu handhaben!
Weiter geht's mit Datei- und Laufwerks-Eigenschaften...
' Größe einer Datei in Bytes Set oFile = oFSO.GetFile("C:\autoexec.bat") MsgBox oFile.Size
Genau wie mit der Datei geht es auch mit den Laufwerken:
' Freier Speicherplatz von C: Set oDrive = oFSO.GetDrive("C:\") MsgBox oDrive.AvailableSpace
Will man z.B. wissen, wieviel Speicherplatz auf dem Computer insgesamt frei ist, einfachen alle Laufwerke "durchlaufen"...
Dim nBytes As Currency For Each oDrive In oFSO.Drives If oDrive.IsReady = True Then nBytes = nBytes + oDrive.FreeSpace Next
Und zu guter Letzt noch die Verzeichnisse.
' Größe eines Ordners Set oFolder = oFSO.GetFolder("C:\Programme") MsgBox oFolder.Size
Das Prinzip ist immer das gleiche!
Das ganze geht sogar noch schneller! Man kann z.B. auch schreiben...
MsgBox oFSO.GetFolder("C:\Programme").Size
Das ist wiederum auf alle FSO-Objekte übertragbar. Manchmal bietet es sich Objekt-Variablen zu deklarieren (z.B. in Prozeduren), manchmal aber, wenn man z.B. nur einen Wert benötigt, lässt es sich schneller ohne extra Objekt-Varialbe lösen (also direkt oFSO.GetFile("C:\autoexec.bat").Size).
Weitere Infos zum FSO-Objekt finden Sie im vb@rchiv in der Rubrik Workshops:
FSO: Arbeiten mit Dateien und Ordner, Teil 1
FSO: Arbeiten mit Dateien und Ordner, Teil 2
FSO: Arbeiten mit Dateien und Ordner, Teil 3