Der Papierkorb ist, IMHO, nur ein virtueller Ordner, der aber lediglich auf die vorhandenen, versteckten Verzeichnisse "Recycled" verweist. Ich schrieb "Verzeichnisse" (Plural), weil es -abhängig von der Anzahl der Festplatten/Partitionen!- mehrere davon geben kann.
Du müsstest mal im DOS-Modus gucken, ob die Dateien im Papierkorb alle in einem "Recycled"-Ordner stecken, bzw. ob jeder Ordner den selben Inhalt hat, oder ob sich die
gelöschten Dateien entsprechend verteilen.
Im letzteren Fall wird dir wahrscheinlich nichts weiter übrig bleiben, als alle Festplatten nach diesen Ordnern abzugrasen und dann entsprechend die Dateien darin zu löschen. Und sag jetzt bitte nicht: "ich habe doch nur Laufwerk C:\."

Du willst doch sicher, dass das Programm auch auf anderen Rechnern funktioniert. Und ich habe z.B. mehr als nur eine Partition.
Ansonsten gibt´s die Shell-Funktion
SHEmptyRecycleBin (s. MSDN, PSDK). Wenn du anstelle des Root-Path (2. Parameter)
nil angibst, wird der Papierkorb geleert - aber eben nur auf die normale Art.
In neueren Delphi-Versionen ist die hoffentlich implementiert. Besitzer von Delphi5 und früher gucken leider in die Röhre und müssen sich die Funktion selbst heraussuchen:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50:
| interface
(******************************** Recycle.Bin ********************************) type {$EXTERNALSYM _SHQUERYRBINFO} _SHQUERYRBINFO = packed record cbSize : DWORD; i64Size : int64; i64NumItems : int64; end; {$EXTERNALSYM TSHQueryRBInfo} TSHQueryRBInfo = _SHQUERYRBINFO; {$EXTERNALSYM PSHQueryRBInfo} PSHQueryRBInfo = ^TSHQueryRBInfo;
const {$EXTERNALSYM SHERB_NOCONFIRMATION} SHERB_NOCONFIRMATION = $00000001; {$EXTERNALSYM SHERB_NOPROGRESSUI} SHERB_NOPROGRESSUI = $00000002; {$EXTERNALSYM SHERB_NOSOUND} SHERB_NOSOUND = $00000004;
{$EXTERNALSYM SHQueryRecycleBinA} function SHQueryRecycleBinA(pszRootPath: LPCTSTR; var pSHQueryRBInfo: TSHQueryRBInfo): HRESULT; stdcall; {$EXTERNALSYM SHQueryRecycleBinW} function SHQueryRecycleBinW(pszRootPath: LPWSTR; var pSHQueryRBInfo: TSHQueryRBInfo): HRESULT; stdcall; {$EXTERNALSYM SHQueryRecycleBin} function SHQueryRecycleBin(pszRootPath: LPCTSTR; var pSHQueryRBInfo: TSHQueryRBInfo): HRESULT; stdcall; {$EXTERNALSYM SHEmptyRecycleBinA} function SHEmptyRecycleBinA(hwnd: HWND; pszRootPath: LPCTSTR; dwFlags: dword): HRESULT; stdcall; {$EXTERNALSYM SHEmptyRecycleBinW} function SHEmptyRecycleBinW(hwnd: HWND; pszRootPath: LPWSTR; dwFlags: dword): HRESULT; stdcall; {$EXTERNALSYM SHEmptyRecycleBin} function SHEmptyRecycleBin(hwnd: HWND; pszRootPath: LPCTSTR; dwFlags: dword): HRESULT; stdcall;
implementation
const shell32 = 'shell32.dll';
function SHQueryRecycleBinA; external shell32 name 'SHQueryRecycleBinA'; function SHQueryRecycleBinW; external shell32 name 'SHQueryRecycleBinW'; function SHQueryRecycleBin; external shell32 name 'SHQueryRecycleBinA'; function SHEmptyRecycleBinA; external shell32 name 'SHEmptyRecycleBinA'; function SHEmptyRecycleBinW; external shell32 name 'SHEmptyRecycleBinW'; function SHEmptyRecycleBin; external shell32 name 'SHEmptyRecycleBinA'; |