Tipp 1.25 - Verzeichnis löschen
Wie kann ich einen Verzeichnisbaum löschen?
Mit dieser Funktion können Sie einen Verzeichnisbaum löschen. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.
Verwendete Win32-Api-Aufrufe und Typen: GetDesktopWindow, SHFileOperation - SHFILEOPSTRUCT
Beispiel:
Option Explicit Public Type SHFILEOPSTRUCT hwnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAborted As Long hNameMaps As Long sProgress As String End Type Public Declare Function GetDesktopWindow _ Lib "user32" () As Long Public Declare Function SHFileOperation _ Lib "shell32.dll" Alias _ "SHFileOperationA" _ (lpFileOp As SHFILEOPSTRUCT) _ As Long Public Function DelTree( _ ByVal sParentFolder As String, _ Optional bAllowUndo As Boolean = True) _ As Boolean '// ----------------------------------------------------- '// Methode: | Löscht einen Verzeichnisbaum '// ----------------------------------------------------- '// Parameter: | sParentFolder - Ausgangsordner '// | bAllowUndo (optional) - in den Papier- '// | korb verschieben oder direkt löschen '// ----------------------------------------------------- '// Rückgabe: | True bei Erfolg '// ----------------------------------------------------- '// Autor: | Stefan Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- Const FO_DELETE As Long = &H3 Const FOF_ALLOWUNDO As Long = &H40 Dim uSHFileOp As SHFILEOPSTRUCT With uSHFileOp .hwnd = GetDesktopWindow() .wFunc = FO_DELETE .pFrom = sParentFolder & vbNullChar End With If bAllowUndo Then uSHFileOp.fFlags = FOF_ALLOWUNDO DelTree = (SHFileOperation(uSHFileOp) = 0) End Function