info@a-coding-project.de

FSO – Tutorial, Tipps & Tricks

FileSystemObject (Im späteren Verlauf mit FSO abgekürzt) ist eine von Microsoft geschaffene Plattform für die Programmierung von Webseiten und/oder Scripten. FSO ist quasi als Erweiterung zu dem Microsoft eigenen JScript zu sehen und wird vor allem bei Active Server Pages, Windows Scripting Host, VBScript und anderen Applikationen bei denen Scripte benutzt werden, eingesetzt. Mit FSO ist es möglich mit Hilfe von (Web-)Scripten auf Dateien und Verzeichnisse zuzugreifen, diese zu verändern oder anzulegen - ebenfalls kann mit Laufwerken gearbeitet werden. Einen kleinen Nachteil bringt FSO jedoch mit: Allein der Microsoft Internet Explorer unterstützt die Anwendung.

FSO auf dem Server

FSO ist eine serverseitige Anwendung, das heißt, sie kann nur auf dem Computer ausgeführt werden, auf dem die Datei liegt. FSO ist grundlegend dazu verwendbar, Skripte für einen Server zu schreiben um auf Dateien, Verzeichnisse oder Festplatten zuzugreifen. FSO findet hier zumeist den Einsatz innerhalb von ASP-Seiten, dem Windows Scripting Host oder bei Windows Scripting Componenten. Trotz der "Zielgruppe" Server ist FSO auch clientseitig einsetzbar. Da es sich um ein Objekt handelt dessen Quelle (die nötigen Systemdateien) unter Windows standardmäßig mit installiert wird kann es prinzipiell auf jedem Windows-Rechner ausgeführt werden. Somit wäre auch der Einsatz innerhalb von clientseitigem JScript denkbar.

Sicherheit

Auf Grund der Möglichkeit Daten auf dem Computer zu verändern sind des öfteren Fragen zur Sicherheit aufgetaucht. Seitdem es serverseitige (server-side) Anwendungen gibt sind jedoch die Sicherheitseigenschaften des Microsoft Internet Explorers so, dass sie keinen benutzertseitigen (client-side) Einsatz von FSO unterstützen. Das System sollte somit eigentlich sicher sein - 100% Sicherheit gibt es jedoch nicht. Um ganz sicher zu gehen, dass kein fremdes Skript mit FSO Daten auf Ihrem System löschen oder schreiben kann, sollten Sie die Möglichkeit ausschalten ActiveX-Objekte zu starten und die Sicherheitsstufe des Internet Explorers auf ein Maximum erhöhen.

Objekte

In FSO gibt es eine Anzahl von Objekten und Gruppen.

FileSystemObject
FileSystemObject-Objekt ist das Hauptobjekt. Es enthält die Methoden und Eigenschaften die es erlauben, auf das System zuzugreifen.

Drive
Im Drive-Objekt sind Methoden und Eigenschaften zusammengefasst um Informationen über Laufwerke, die an das System angeschlossen sind, zu erlangen. Laufwerke können Festplatten, CD-Rom und andere Dinge sein.

Drives
Drives ist eine Gruppe. Diese beinhaltet sämtliche an das System angeschlossene Laufwerke, egal welchen Types.

Folder
Das Folder-Objekt setzt sich aus Methoden und Eigenschaften zusammen, welche erlauben Verzeichnisse zu erstellen, löschen oder zu verändern.

Folders
Folders ist eine Gruppe. Sie enthält alle Verzeichnisse eines bestimmten Pfades.

File
Das File-Objekt beinhaltet Methoden und Eigenschaften, welche erlauben Dateien zu erstellen, löschen oder zu verändern. Zusätzlich erlaubt es das System nach Name, Verzeichnis/Pfad und anderen Eigenschaften zu durchsuchen.

Files
Files ist eine Gruppe. Diese enthält alle Dateien in einem bestimmten Verzeichnis.

TextStream
TextStream ist ein Objekt welches erlaubt Dateien zu lesen und zu schreiben.

Notation

Bei der Notation von FSO-Objekten ist es zunächst wichtig einige Grundkenntnisse zu haben. FSO wird in diesem Zusammenhang als JScript Anwendung behandelt – setzt also auch dementsprechenend einige Kenntnisse vom Umgang und der Behandlung in und um JScript voraus. FSO ist auch in Verbindung mit VBScript einsetzbar, auf diese Möglichkeit der Anwendung wird hier aber nicht im weiteren eingegangen.

File

Files

Die Beispielfunktion erstellt eine Liste der in einem Verzeichnis vorhandenen Dateien mit jeweiliger Größe in KB und gibt dies in das Dokument aus.

TextStream

Das TextStream-Objekt stellt den Inhalt einer Datei dar. Dieser liegt jedoch nicht als reiner Text vor, sondern muss erst noch ausgelesen werden und kann dann an eine Variable übergeben werden bzw. anderweitig behandelt werden. Zusätzlich ermöglicht es das Schreiben in eine Datei. Das TextStream-Objekt erhält dazu folgende Eigenschaften und Methoden:

Enumerator

Ein Enumerator ist eine Gruppe von Objekten (eine Auflistung). Sie sind in etwa mit einem Array vergleichbar, allerdings mit dem Unterschied, dass alle Objekte die enthalten sind ihre Funktionen, Eigenschaften und Methoden behalten wohingegen bei einem Array nur die aktuellen Werte übergeben werden. Sie können also auch innerhalb solcheines Enumerators die jeweiligen Eigenschaften eines Objektes abfragen. In FSO werden diese Enumeratoren dazu verwendet, z.B. die Dateien eines bestimmten Verzeichnisses aufzulisten.

Dictionary

Ein Dictionary-Objekt ist ein Paare-Objekt. D.h. es gibt immer einen Schlüssel, dem ein Element zugewiesen wird/ist. Es ist möglich neue Objekte zu erstellen oder bereits vorhandene – wie etwa Files, Folders oder Drives – zu nutzen. Ebenso ist auch das Nutzen und Erstellen von Schlüsseln und Elementen möglich. Dies beschränkt sich jedoch auf neu erstellte Dictionary-Objekte.

Drive

Das Drive-Objekt dient zum Umgang von und mit Laufwerken. Mit ihm ist es es möglich deren Eigenschaften auszulesen. Das Schreiben von Werten ist aus Sicherheitsgründen nicht möglich.
Das Drive-Objekt enthält dazu folgende Eigenschaften:

Drives

Es wird die Funktion drives() aufgerufen. Als erstes wird das notwendige FileSystemObject erstellt, um Zugriff auf das System zu erlangen. Dann wird mit fso.Drives.Count die Anzahl der an das System angeschlossenen Laufwerke gezählt und auf die Variable a gelegt.

Folder

Die Attributes-Eigenschaft gibt die Attribute des Verzeichnisses wieder. Als Rückgabewert erhalten Sie eine logische Verknüpfung der Attributwerte.

Folders

Als erstes wird die Funktion folders aufgerufen. Nun wird das notwendige FileSystemObject erstellt, um Zugriff auf das System zu erlangen. Dann wird mit new Enumerator(b) der Variablen d ein neues Enumerator-Objekt zugewiesen.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant