ファイルなどをゴミ箱に削除するのはSHFileOperationを、ゴミ箱を空にするにはSHEmptyRecycleBinを利用する。
SHEmptyRecycleBinは各ドライブごとに存在するゴミ箱を個別に削除できるが、ここでは一括前ドライブのゴミ箱を空にしている。
#include "shellapi.h"
//
// ゴミ箱を空にする
//
//ゴミ箱が既に空でもtrueが返る
//
bool EmptyRecycleBin(void)
{
HRESULT hr;
hr = ::SHEmptyRecycleBin(NULL,NULL,SHERB_NOCONFIRMATION | SHERB_NOPROGRESSUI | SHERB_NOSOUND);
return SUCCEEDED(hr) ? true : false;
}
void Test(void)
{
bool ret;
ret = EmptyRecycleBin();
if(ret)
::MessageBox(NULL,_T("ゴミ箱を空にしました"),_T(""),MB_OK);
else
::MessageBox(NULL,_T("ゴミ箱を空にできませんでした"),_T(""),MB_OK);
}
