Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datumsdateien im gleichen Verzeichnis löschen

Forumthread: Datumsdateien im gleichen Verzeichnis löschen

Datumsdateien im gleichen Verzeichnis löschen
14.11.2004 18:55:47
Peter
Hallo Forum,
wie kann ich alle Dateien löschen, die vor mehr als 2 Tage vom aktuellen Datum gerechnet,
erstellt wurden?
Die Dateien sind alle im Verzeichnis „Sicherungskopie“, und sind folgendermaßen benannt:
Abt1_101104.xls
Abt1_111104.xls
Abt1_121104.xls
Abt1_131104.xls
Abt1_131104.xls
Danke Peter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumsdateien im gleichen Verzeichnis löschen
Ramses
Hallo
Hier gibt es zwei Unklarheiten:
Möchtest du die Dateien löschen, die älter sind als 2 Tage, und damit ist das ERSTELLUNGSDATUM gemeint, dann kannst du das probieren

Sub Delete_2DayOld_Files()
Dim myFSO As Object, myFld As Object, myFldFiles As Object
Dim myFile As Object
Dim i As Long, xDel As Byte
Dim srcFolder As String
'Zu durchsuchender Ordner
srcFolder = "C:\Test\"
'Definition des System Objectes
Set myFSO = CreateObject("scripting.FileSystemObject")
If myFSO.folderexists(srcFolder) = False Then
MsgBox "Der Ordner existiert nicht"
Exit Sub
End If
Set myFld = myFSO.getfolder(srcFolder)
Set myFldFiles = myFld.Files
'Tage ab wann gelöscht werden soll
xDel = 2
For Each myFile In myFldFiles
'Zur Kontrolle Ausgabe im Direktfenster
Debug.Print myFile.Name
'Löscht Dateien die älter sind als "xDel" Tage
If myFile.DateCreated < Now - xDel Then
MsgBox myFile.Name & ": Datei wäre zum löschen"
'Kill myFile
Else
Debug.Print "Nicht zum löschen: " & myFile.Name
End If
Next
End Sub

Wenn du Dateien löschen willst, die im Dateinamen ein Datum haben, das älter ist als 2 Tage, dann sowas

Sub Delete_2DaysOld_Filename_Files()
Dim myFSO As Object, myFld As Object, myFldFiles As Object
Dim myFile As Object
Dim xDel As Byte
Dim srcFolder As String
Dim timeInt As Integer
'Zu durchsuchender Ordner
srcFolder = "C:\Test\"
'Definition des System Objectes
Set myFSO = CreateObject("scripting.FileSystemObject")
If myFSO.folderexists(srcFolder) = False Then
MsgBox "Der Ordner existiert nicht"
Exit Sub
End If
Set myFld = myFSO.getfolder(srcFolder)
Set myFldFiles = myFld.Files
'Tage ab wann gelöscht werden soll
xDel = 2
For Each myFile In myFldFiles
'Zur Kontrolle Ausgabe im Direktfenster
Debug.Print myFile.Name
timeInt = CInt(Left(Right(myFile.Name, 10), 2))
'Löscht Dateien in deren Datum ein Tag vorkommt
'der älter ist als heute - 2 Tage
If timeInt < (Now - (Now - xDel)) Then
Debug.Print "Zu löschen: " & myFile.Name
MsgBox myFile.Name & ": Datei wäre zum löschen"
'Kill myFile
Else
Debug.Print "Nicht zum löschen: " & myFile.Name
End If
Next
End Sub

Das Hochkomma " ' " vor "Kill myFile" muss entfernt werden, um das Makro "scharf" zu machen.
Gruss Rainer
Anzeige
AW: -Vielen Dank! Dateien löschen
Peter
Danke Rainer,
für beide Lösungswege. Jetzt muß ich mir das erstmal in Ruhe anschauen
um die Sache zu verstehen.
einen schönen Abend noch
Peter
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige