| |

Visual-Basic EinsteigerRe: Ordner der mit dateien gefüllt ist,löschen | |  | Autor: Tolwyn | Datum: 10.09.01 14:40 |
| Hallo,
um das zu machen gibt es erst mal 2 Werge.
Weg 1: Du durchläufst alle Unterverzeichnisse, löscht alle Dateien mit Kill und entfernst dann alle Verzeichnisse mit „RMDir“.
Weg 2: Du benutzt eine API.
Und hier ist ein Beispiel für den 2ten Weg:
Diese Funktion löscht den übergebenen Dateien- oder Verzeichnisamen, ein übergebenes Array mit Datei- oder Verzeichnisnamen. Sicherheitshalber habe ich bAllowUndo standardmäßig mal auf True gesetzt.
Die Funktion gibt meist True zurück. Nur wenn der Befehl „SHDelete = Not CBool(SHFileOperation(oFileOP))“ einen echten Fehler hat wird False zurückgegeben. „AbortFiles“ wird (falls erforderlich) mit den Datei- oder Verzeichnisnamen gefüllt, die der Benutzer nicht löschen wollte.
Einfach in ein Modul kopieren und testen.
Option Explicit
' API Deklarationen
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type
Private Declare Function SHFileOperation Lib "Shell32.dll" _
Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_SILENT = &H4
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_SIMPLEPROGRESS = &H100
Private Const FOF_NOERRORUI = &H400
' vFiles - Ein Array oder String, der die zu löschende Datei oder
' das Verzeichnis angibt.
' bConfirmation - Soll der Benutzer die Aktion bestätigen?
' bShowProgress - Soll ein Fortschritt angezeigt werden?
' bShowNames - Sollen auch die Namen angezeigt werden?
' bAllowUndo - Soll in den Papierkorb gelöscht werden?
' bShowErrors - Sollen Fehler angezeigt werden?
' AbortFiles - Rückgabe abgebrochener Files
Public Function SHDelete(vFiles As Variant, _
Optional bConfirmation As Boolean, _
Optional bShowProgress As Boolean, _
Optional bShowNames As Boolean, _
Optional bAllowUndo As Boolean = True, _
Optional bShowErrors As Boolean = True, _
Optional lStartHwnd As Long, _
Optional AbortFiles As Variant _
) As Boolean
Dim i As Long
Dim oFileOP As SHFILEOPSTRUCT
With oFileOP
' Das From setzten
If IsArray(vFiles) Then
' Array auseinandernehmen
For i = LBound(vFiles) To UBound(vFiles)
.pFrom = .pFrom & vFiles(i) & vbNullChar
Next 'i
.pFrom = .pFrom & vbNullChar
ElseIf VarType(vFiles) = vbString Then
' Wenn ein Verzeichnis dann aber ohne abschließendes
' "\"
If Right(vFiles, 1) = "\" Then
vFiles = Left(vFiles, Len(vFiles) - 1)
End If
.pFrom = vFiles
If Right(.pFrom, 1) <> vbNullChar Then
.pFrom = .pFrom & vbNullChar
End If
' mit 2 vbNullChar abschließen
If Mid(.pFrom, Len(.pFrom) - 1, 1) <> vbNullChar Then
.pFrom = .pFrom & vbNullChar
End If
End If
' Flags setzten
If bAllowUndo Then .fFlags = FOF_ALLOWUNDO
If Not bShowProgress Then .fFlags = .fFlags Or FOF_SILENT
If Not bConfirmation Then .fFlags = .fFlags Or FOF_NOCONFIRMATION
If Not bShowNames Then .fFlags = .fFlags Or FOF_SIMPLEPROGRESS
If Not bShowErrors Then .fFlags = .fFlags Or FOF_NOERRORUI
' wir wollen löschen
.wFunc = FO_DELETE
' Das Handle des aufrufenden Fensters
.hWnd = lStartHwnd
' Und gib ihm!
SHDelete = Not CBool(SHFileOperation(oFileOP))
If Not IsMissing(AbortFiles) Then
' Sollte der Benutzer abgebrochen haben evtl. eine
' Info an die aufrufende Funktion.
AbortFiles = CBool(.fAnyOperationsAborted)
End If
End With
End Function Gruß
Tolwyn |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) 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
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle 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.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|