Im Laufe der Zeit sammeln sich auf dem System viele temporäre Dateien an. Bei diesen Dateien mit der Endung tmp handelt es sich um Dateien, die entweder vom System selbst oder von den Anwendungsprogrammen erzeugt wurden, um Daten und oder Einstellungen temporär zwischenzuspeichern. Diese temporären Dateien belegen nicht nur Speicherplatz, sondern verlangsamen auch das System. Das nachfolgende Beispiel zeigt, wie man das gesamte System - also alle Festplatten-Laufwerke - nach temporären Dateien durchsuchen und diese autom. löschen kann. Am einfachsten erschien es mir für diesen Zweck das FileSystemObject oder kurz FSO zu verwenden. Dieses ist Bestandteil der Windows Scripting Runtime-DLL und wird über "Projekt - Verweise" in das aktuelle VB-Projekt eingefügt. Um das nachfolgende Beispiel zu testen, erstellen Sie ein neues Projekt und setzen zunächst einen Verweis auf obige DLL. Plazieren Sie auf die Form einen CommandButton (cmdStart), ein Label-Control (lblPath) und eine CheckBox (chkShowDialog). Fügen Sie nachfolgende Code in den Codeteil der Form ein. Option Explicit Dim FSO As FileSystemObject Private Sub Form_Load() ' FileSystemObject-Variable erstellen Set FSO = New FileSystemObject chkShowDialog.Caption = "Löschen mit Bestätigung" chkShowDialog.Value = 1 cmdStart.Caption = "Starten" End Sub Private Sub cmdStart_Click() Dim Drives As Drives Dim Drive As Drive ' alle Laufwerke ermitteln Screen.MousePointer = vbHourglass Set Drives = FSO.Drives For Each Drive In Drives ' Laufwerkstyp Festplatte? If Drive.DriveType = Fixed Then ' jetzt alle Ordner nach TMP-Files durchsuchen ' und löschen FSO_KillTempFiles Drive.DriveLetter & ":\", _ CBool(chkShowDialog.Value) End If Next Screen.MousePointer = vbNormal End Sub ' Alle TMP-Dateien eines Ordners löschen Private Sub FSO_KillTempFiles(ByVal sPath As String, _ Optional ByVal bShowDialog As Boolean = False) Dim Folder As Folder Dim SubFolder As Folder ' Ggf. abschliessenden Backslash anfügen If Right$(sPath, 1) <> "\" Then sPath = sPath & "\" lblPath.Caption = sPath DoEvents Set Folder = FSO.GetFolder(sPath) If Dir(sPath & "*.tmp") <> "" Then If bShowDialog Then ' zunächst Lösch-Hinweis anzeigen If Msgbox("Der Ordner " & sPath & " enthält ein " & _ "oder mehrere temporäre Dateien" & vbCrLf & _ "Dateien jetzt löschen?", vbQuestion + vbYesNo, _ "Löschbestätigung") = vbYes Then ' temporäre Dateien löschen Kill sPath & "*.tmp" End If Else ' Löschen ohne Abfrage Kill sPath & "*.tmp" End If End If ' Ggf. Fehler "Zugriff verweigert" ignorieren On Local Error Resume Next ' Unterordner If Folder.SubFolders.Count > 0 Then For Each SubFolder In Folder.SubFolders ' Hier wird die Funktion REKURSIV aufgerufen, ' um alle weiteren Unterordner des SubFolders ' zu ermitteln FSO_KillTempFiles sPath & SubFolder.Name, bShowDialog Next End If End Sub Dieser Tipp wurde bereits 34.536 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. |
TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. 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. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |