SHEmpyRecycleBin の シェル関数呼び出しを行います。
using System.Runtime.InteropServices;
// flags for SHEmptyRecycleBin
//
enum RecycleFlags :uint
{
// No dialog box confirming the deletion of the objects will be displayed.
SHERB_NOCONFIRMATION = 0x00000001,
// No dialog box indicating the progress will be displayed.
SHERB_NOPROGRESSUI = 0x00000002,
// No sound will be played when the operation is complete.
SHERB_NOSOUND = 0x00000004
}
// Platform SDK 呼び出しプロトタイプ宣言
// HRESULT SHEmptyRecycleBin(
// HWND hwnd,
// LPCTSTR pszRootPath,
// DWORD dwFlags
// );
[DllImport("Shell32.dll", CharSet = CharSet.Unicode)]
static extern uint SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath, RecycleFlags dwFlags);
// Windows.Forms から呼び出す場合
uint result = SHEmptyRecycleBin(this.Handle, null, 0);
// Console から呼び出す場合
uint result = SHEmptyRecycleBin(IntPtr.Zero, null, 0);
RootPath, RecycleFlags は適当にセットしてください。
詳細は、MSDNを参照してください。
|