In diesem Tutorial geht es um das "FileSystemObject" in VisualBasicScript.
Es wird gezeigt wie man das FileSystem benutzt und wie man mit seiner Hilfe Verzeiczhnisse und Festplatten durchsucht. Das Script funktioniert sowohl "standalone" (als *.vbs-Datei) als auch als ASP-Script oder sonstiges.
Vorallem bei "automatischen" Album-Scripts in ASP kann dies nützlich sein (Automatisches auflisten von Bilddateien in einem Ordner).
Nun der Eigentliche Code:
1:On Error Resume Next'Falls Fehler auftreten, werden diese übergangen. So werde lästige Meldungen umgangen. 2:'Deklaration der globalen Variablen 3:Dim Fso, Drives, Drive 4:'Erstellen eins FilesystemObject, damit wir zugriff auf Dateien und Ordner bekommen. 5:Set Fso = CreateObject("scripting.FileSystemObject") 6:'Wir wolen jedes Laufwerk durchsuchen. 7:Set Drives = Fso.Drives 8:For Each Drive In Drives 'Eine Schlaufe. Für jedes LW einen Durchgang 9:If Drive.isready Then 'Es wird hier überprüft ob das Laufwerk bereit ist (ob zb. ein CD-Rom auch eine Disk enthält)) 10:Dosearch Drive 'Die Funktion Dosearch (siehe weiter unten) wird für jedes LW einmal aufgerufen. 11:End If 12:Next 13: 14:'Die Such-Funktion 15:Function Dosearch(Path) 16:'Die Suchfunktion ist rekursiv aufgebaut. Sie benötigt einen Übergabe-Wert und wird (rekrusiv) für jedes unterverzeichnis aufgerufen. 17: 18:'Lokale Variablen: 19:Dim Folder, Files, File, Subfolders, Subfolder 20: 21:'Zuerst wird das FileSystemObject auf den aktuellen Ordner gesetzt 22:Set Folder = Fso.getfolder(Path) 23:'Dann werden die Dateien ausgelsen und mit einer For-Schlaufe wird jede Datei überprüft. 24:Set Files = Folder.Files 25:For Each File In Files 'File ist imemr das aktuelle file das in der Schlaufe drann ist. (wie bei LW) 26: 27:'Wir überprüfen die Endung der Datei, falls sie "vbs" ist, wird mit einer Message-Box der Dateiname & Pfad ausgegeben. 28:If Fso.GetExtensionName(File.Path) = "vbs" Then 29:MsgBox File.Path 30:End If 31: 32:'Wir überprüfen ob wir eine Konfigurations-Datei von mIRC finden und geben gegebenenfalls eine Message-Box aus mit dme Pfad: 33:If File.Name = "mirc.ini" Then 34:MsgBox "Mirc found in " & File.ParentFolder 35:End If 36: 37:'Folgendes könnte benutzt werden um dateien zu löschen. Es sollte noch eine if-Abfrage eingebaut werden damit nicht alles glösche wird. 38:'Set aFile = Fso.GetFile(File.Path) '(Vorsichtshalber auskommentiert) 39:'aFile.Delete 40:Next 41: 42:'Wenn alle Dateien abgearbeitet sind, werden die Unterordner durchsucht. 43:Set Subfolders = Folder.Subfolders 44:'Wieder mit einer Schleife wie bei den Dateien. 45:For Each Subfolder In Subfolders 46:'Nun wird wieder für jedes Unterverzeichnis die Suchfunktion aufgerufen. (-> rekursiv; die Funktion ruft sich selbst auf) 47:Dosearch Subfolder.Path 48:Next 49:End Function
Falls es Fragen gibt, meldet euch im Gästebuch oder schreibt mir ein Email: webmaster'at'black-silence'dot'chViele Grüsse, Euer Webmaster