VB-Homepage Tipp 047

eine Datei in Papierkorb verschieben, anstatt zu löschen

Erstellen Sie sich ein neues Projekt und und fügen Sie zusätzlich ein Modul ein.
Diesem Modul verpassen Sie unter
Allgemein/Deklarationen folgende Anweisungen

Option Explicit
Declare Function SHFileOperation Lib "shell32.dll" (lpFileOp As SHFILEOPSTRUCT) As Long

Public Type SHFILEOPSTRUCT
   hWnd As Long
   wFunc As Long
   pFrom As String
   pTo As String
   fFlags As Integer
   fAborted As Boolean
   hNameMaps As Long
   sProgress As String
End Type

Desweiteren geben Sie noch folgendes mit an.
Durch die Eingabe wird ein neuer Abschnitt erzeugt.


Allgemein/DateiInPapierkorb


Public Function DateiInPapierkorb(ParamArray Dateiname() As Variant)
Dim RR As Integer
Dim Dateien As String
Dim ShellOperator As SHFILEOPSTRUCT
Dim i

For i = LBound(Dateiname) To UBound(Dateiname)
   Dateien = Dateien & Dateiname(i) & vbNullChar
Next i

Dateien = Dateien & vbNullChar

With ShellOperator
   .wFunc = &H3
   .pFrom = Dateien
   .fFlags = &H40
End With

DateiInPapierkorb = SHFileOperation(ShellOperator)

End Function

Das war es im Modul.

Form/Eigenschaften
Im nun einen Test zu machen, fügen wir der Form zwei Command-Button hinzu und tragen folgendes ein.

Command1/Click
Open "C:\müll.txt" For Output As #1
   Print #1, "Testtext Zeile1"
   Print #1, "Testtext Zeile2"
   Print #1, "Testtext Zeile3"
   Print #1, "Testtext Zeile4"
Close

Command1.Enabled = False
Command2.Enabled = True

Command2/Click
x& = DateiInPapierkorb("c:\müll.txt")

'auch möglich
'gleich mehrere Dateien
'x& = DateiInPapierkorb("c:\müll1.txt", "c:\müll2.txt", "c:\müll3.txt")
'oder Platzhalter
'x& = DateiInPapierkorb("c:\*.txt")

Command1.Enabled = True
Command2.Enabled = False


Tipp-Download

Quelle :

Zurück zur Übersichtsseite