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 14.717 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. 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. |
||||||||||||||||
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. |