Es gibt in C# keine vorgefertigte Option, das zu machen - aber in VB. Allerdings lässt sich die VB-Variante auch in C# nutzen:
Microsoft.VisualBasic.dll referenzieren
Den Namensraum Microsoft.VisualBasic.FileIO per using einbinden
Nun erhält man Zugriff auf die Klasse FileSystem, die zwei Methoden anbietet: DeleteFile und DeleteDirectory, die jeweils eine Option namens RecycleOption haben, mit der man angeben kann, ob in den Papierkorb oder direkt gelöscht werden soll
Die API-Funktion heißt "SHFileOperation" aus der "shell32.dll".
Hier ein Beispiel:
using System; using System.Runtime.InteropServices; using System.Diagnostics;
namespace FileHandlerNS { public class FileHandler {
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)] public struct SHFILEOPSTRUCT { public IntPtr hwnd; public UInt32 wFunc; public string pFrom; public string pTo; public UInt16 fFlags; public Int32 fAnyOperationsAborted; public IntPtr hNameMappings; [MarshalAs(UnmanagedType.LPWStr)] public String lpszProgressTitle; }