[color=darkblue]Sub[/color] Main
[color=darkblue]Dim[/color] iTage [color=darkblue]As Integer[/color]
[color=#9090C0]'wieviele Tage die Datei alt sein muss[/color]
iTage = 2
LoescheDateien iTage
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
MS Scripting Runtime ist nicht erforderlich:[color=darkblue]Private[/color] [color=darkblue]Sub[/color] LoescheDateien[b]([/b][color=darkblue]ByVal[/color] Tage [color=darkblue]As Integer[/color][b])[/b]
[color=#9090C0]'Diese Routine löscht alle Text-Dateien die sich[/color]
[color=#9090C0]'im aktuellen Programmverzeichnis befinden und älter[/color]
[color=#9090C0]'als x Tage sind[/color]
[color=#9090C0]'Parameter: Tage wieviele Tage die Datei alt sein muss[/color]
[color=darkblue]Const[/color] attrAllFiles = vbNormal Or vbArchive Or vbHidden Or vbReadOnly Or vbSystem
[color=darkblue]Dim[/color] Datei [color=darkblue]As String[/color]
[color=darkblue]Dim[/color] DateiDatum [color=darkblue]As Date[/color]
[color=#9090C0]'zum aktuellen Datum Tage addieren[/color]
DateiDatum = [color=darkblue]Now[/color] - Tage
[color=#9090C0]'Dateien im aktuellen Programmverzeichnis durchlaufen[/color]
Datei = [color=darkblue]Dir[/color][b]([/b]App.Path & [color=blue]"\*.txt"[/color], attrAllFiles[b])[/b] [color=#9090C0]' Retrieve the first entry.[/color]
[color=darkblue]Do[/color] [color=darkblue]While[/color] Datei <> [color=blue]""[/color] [color=#9090C0]' Start the [color=darkblue]loop[/color].[/color]
[color=darkblue]If[/color] FileDateTime[b]([/b]Datei[b])[/b] < DateiDatum [color=darkblue]Then[/color]
SetAttr Datei, GetAttr[b]([/b]Datei[b])[/b] And Not vbReadOnly
Kill Datei
[color=darkblue]End[/color] [color=darkblue]If[/color]
Datei = [color=darkblue]Dir[/color]
[color=darkblue]Loop[/color]
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
Aber wenn es denn unbedingt mit MS Scripting Runtime sein soll:[color=darkblue]Private[/color] [color=darkblue]Sub[/color] LoescheDateien[b]([/b][color=darkblue]ByVal[/color] Tage [color=darkblue]As Integer[/color][b])[/b]
[color=#9090C0]'Diese Routine löscht alle Text-Dateien die sich[/color]
[color=#9090C0]'im aktuellen Programmverzeichnis befinden und älter[/color]
[color=#9090C0]'als x Tage sind[/color]
[color=#9090C0]'Parameter: Tage wieviele Tage die Datei alt sein muss[/color]
[color=darkblue]Dim[/color] FSO [color=darkblue]As New FileSystemObject[/color]
[color=darkblue]Dim[/color] Datei [color=darkblue]As File[/color]
[color=darkblue]Dim[/color] DateiDatum [color=darkblue]As Date[/color]
[color=#9090C0]'zum aktuellen Datum Tage addieren[/color]
DateiDatum = [color=darkblue]Now[/color] - Tage
[color=#9090C0]'Dateien im aktuellen Programmverzeichnis durchlaufen[/color]
[color=darkblue]For[/color] [color=darkblue]Each[/color] Datei In FSO.GetFolder[b]([/b]App.Path[b])[/b].Files
[color=darkblue]With[/color] Datei
[color=darkblue]If[/color] .Name Like [color=blue]"*.txt"[/color] [color=darkblue]Then[/color] [color=#9090C0]'-> 0ption Compare Text![/color]
[color=darkblue]If[/color] .DateLastModified < DateiDatum [color=darkblue]Then[/color] .Delete [color=darkblue]True[/color]
[color=darkblue]End[/color] [color=darkblue]If[/color]
[color=darkblue]End[/color] [color=darkblue]With[/color]
[color=darkblue]Next[/color]
[color=#9090C0]'Lokale Objekte werden automatisch zerstört ...[/color]
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
Falls MS Scripting Runtime nicht auch anderweitig verwendet wird, würde ich hier darauf verzichten.