« Papierkorb leeren
Um den Papierkorb zu leeren gibt es leider keine in verwaltetem Code zur Verfügung stehende Funktionalität des .NET-Frameworks für C#. Es ist also – wieder einmal – an der Zeit für DllImport
.
Wir werden dazu eine Klasse RecycleBin
mit integrierten RecycleFlags
erstellen:
public static class RecycleBin {
public static void Clear(RecycleFlags recycleFlags = RecycleFlags.None) {
SHEmptyRecycleBin(IntPtr.Zero, null, recycleFlags);
}
[DllImport("shell32")]
private static extern uint SHEmptyRecycleBin(
IntPtr hwnd, string pszRootPath, RecycleFlags dwFlags
);
public enum RecycleFlags : uint {
None = 0x0, // Standardverhalten
NoConfirmation = 0x1, // keine Rückfrage zur Bestätigung
NoProgressUI = 0x2, // keine Fortschrittsanzeige
NoSound = 0x4 // kein Abschlussgeräusch
}
}
Die Verwendung gestaltet sich nun wieder gewohnt einfach:
// Papierkorb leeren (Standard)
RecycleBin.Clear();
// Papierkorb ohne Rückfrage leeren
RecycleBin.Clear(RecycleBin.RecycleFlags.NoConfirmation);
Im MSDN gibt es wie üblich weitere Details zu SHEmptyRecycleBin
.