Papierkorb mit C# leeren 👍 👎

Passend zum letzten Beitrag (Datei mit C# in Papierkorb verschieben) soll es noch einmal um den Papierkorb gehen. Um den Papierkorb zu leeren gibt es leider ebenfalls 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:
RecycleBin.cs
010203040506070809101112131415161718
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
0102030405
  // Papierkorb leeren (Standard)RecycleBin.Clear();
// Papierkorb ohne Rückfrage leerenRecycleBin.Clear(RecycleBin.RecycleFlags.NoConfirmation);
Im MSDN gibt es wie üblich weitere Details zu SHEmptyRecycleBin.


Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche