Man kennt es sicher: man schreibt die eine oder andere Routine, um etwas in Textdateien zwischen zu speichern und vergisst nachher das Löschen dieser Dateien. Oder man hat eine Logging-Routine, die Flatfiles für eine Datenbank erzeugt, jedoch nach dem Import nicht automatisch löscht. Das hat nun ein Ende! Mit der Funktion DeleteFilesAfterXDays hat man die Möglichkeit einen Ordner anzugeben, der nach alten Dateien sucht und diese löscht. Mehr dazu im Quellcode... Quellcode: ' Löscht alle Dateien eines Ordners, die älter als x Tage sind Public Function DeleteFilesAfterXDays(ByVal strFilePath As String, _ Optional ByVal lngFileAge As Long = 10, _ Optional ByVal strFileType As String = "") As Long Dim lngDeletetFiles As Long Dim dtmFileCreated As Date Dim objFSO As Object Dim objFolder As Object Dim colFile As Object Dim objFile As Object ' Fehlerbehandlung aktivieren On Error GoTo ErrHandler ' Laufparameter für das Gesamtergebnis der gelöschten Dateien lngDeletetFiles = 0 ' Verweis auf das FileSystemObject erstellen Set objFSO = CreateObject("Scripting.FileSystemObject") ' Verweis auf den übergebenen Pfad setzen Set objFolder = objFSO.GetFolder(strFilePath) ' Verweis auf die Dateien im übergebenen Pfad setzen Set colFile = objFolder.Files ' Schleife über alle Dateien im Ordner For Each objFile In colFile With objFile ' Prüfung nach dem Dateitypen, sprich der Dateiendung. ' Bei "" werden alle Dateien überprüft, ansonsten der ' an strFileType übergebene Dateityp, bestehend aus den ' letzten Buchstaben nach dem Punkt. If Len(strFileType) = 0 Or _ Right$(.Name, Len(.Name) - InStrRev(.Name, ".")) = strFileType Then ' Dateierstellungsdatum der Datei auslesen dtmFileCreated = .DateCreated ' Datumdifferenz berechnen und mit der Anzahl der ' übergebenen Tagen in lngFileAge vergleichen If DateDiff("d", dtmFileCreated, Now()) > lngFileAge Then ' Bei Überschreitung der Altersgrenze, wird die Datei gelöscht .Delete lngDeletetFiles = lngDeletetFiles + 1 End If End If End With Next ' Anzahl der gelöschten Dateien übergeben DeleteFilesAfterXDays = lngDeletetFiles ErrHandler: ' Objekte zerstören Set objFolder = Nothing Set objFSO = Nothing Set colFile = Nothing Set objFile = Nothing End Function Ein möglicher Aufruf könnte so aussehen: Dim strPath As String Dim lngAge As Long Dim lngAusgabe As Long Dim strType As String strPath = "C:\Temp" lngAge = 14 strType = "bak" lngAusgabe = DeleteFilesAfterXDays(strPath, lngAge, strType) Debug.Print "Es wurden " & lngAusgabe & " Dateien aus dem Ordner " & strPath & " gelöscht" Dieser Tipp wurde bereits 15.339 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevZIP40 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |