Workshop: Makro-gesteuerte Dateiverarbeitung

Funktionsweise

Das fertige Programm wird aus mehreren Komponenten bestehen: Zum einen gibt es den eigentlichen Motor. Dieser sorgt dafür, dass jede betroffene Datei verarbeitet wird, und kümmert sich auch um die Übersetzung und Ausführung der Makros. Diese Makros übernehmen die eigentliche Arbeit.

Dabei gibt es zwei unterschiedliche Makro-Typen. Der eine dient der Filterung der Dateien, er überprüft also beispielsweise das Alter und die Größe einer Datei oder stellt fest, ob eine Datei ein bestimmtes Wort enthält. Der zweite Typ sorgt für die Verarbeitung der Datei, also beispielsweise das Löschen, Umbenennen oder Verändern der Datei.

Die Filter-Makros lassen sich auch verketten, sprich die Dateien werden von mehreren Filtern durchgesiebt. Nur für die Dateien, auf die alle Filter zutreffen, wird das Bearbeitungs-Makro ausgeführt. Ein Aufruf der Datei-Verarbeitung könnte also in etwa wie folgt aussehen:

Css.exe PfadZumOrdnerMitDateien SizeFilter.cs AgeFilter.cs DeleteAction.cs

Das Programm soll über alle Dateien im angegebenen Ordner iterieren. Für jede Datei wird das Skript aus SizeFilter ausgeführt: Dieses Makro könnte beispielsweise untersuchen, ob eine gegebene Datei eine bestimmte Größe überschreitet. Ist das nicht der Fall, geht die Arbeit mit der nächsten Datei weiter. Ist die Größe aber überschritten, wird der AgeFilter ausgeführt. Der könnte zum Beispiel überprüfen, ob die Datei ein bestimmtes Alter überschritten hat. Trifft das auch zu, wird das Makro DeleteAction ausgeführt: Auf diese Weise werden also alle Dateien ab einem bestimmten Alter mit einer bestimmten Größe gelöscht.