vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Dateisystem · Dateien allgemein   |   VB-Versionen: VB5, VB626.11.03
Perfekte Funktion für das Dateisystem

Perfekte Funktion für das Dateisystem (kopieren, löschen, verschieben, usw.)

Autor:   Heiko FaissBewertung:  Views:  21.192 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11kein 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
 



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.