vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Dateisystem · Dateien allgemein   |   VB-Versionen: VB5, VB604.03.02
Alle temporären Dateien löschen

Dieses Beispiel zeigt, wie man das gesamte System nach tmp-Dateien durchsuchen und diese autom. löschen kann.

Autor:   Dieter OtterBewertung:  Views:  34.534 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

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



Anzeige

Kauftipp Unser Dauerbrenner!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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


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.