Tipp 1.11 - Dateien löschen
Wie kann ich Dateien mit den Flying Windows löschen?
Mit dieser Funktion können Sie Dateien mit den Flying Windows 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 DeleteFiles( _ asFiles() As String, _ Optional bNoUndo As Boolean = False) _ As Boolean '// ----------------------------------------------------- '// Methode: | Löscht eine Anzahl Dateien (in den '// | Papierkorb); Aufruf des "flying windows" '// | Dialogs benötigt VBA6+ wegen Join-Funkt. '// ----------------------------------------------------- '// Parameter: | asFiles = Datenfeld (Array) mit gültigen '// | Pfaden '// ----------------------------------------------------- '// Rückgabe: | True bei Erfolg, '// | False bei Abbruch während des Löschens! '// ----------------------------------------------------- '// Autor: | Stefan Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- Const FO_DELETE As Long = &H3 Const FOF_ALLOWUNDO As Long = &H40 Dim uSHFileOp As SHFILEOPSTRUCT Dim sFiles As String sFiles = VBA.Join(asFiles, vbNullChar) sFiles = sFiles & vbNullChar With uSHFileOp .hwnd = GetDesktopWindow() .wFunc = FO_DELETE .pFrom = sFiles End With If Not bNoUndo Then uSHFileOp.fFlags = FOF_ALLOWUNDO DeleteFiles = (SHFileOperation(uSHFileOp) = 0) End Function