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'ch
Viele Grüsse, Euer Webmaster