ゴミ箱内のアイテム数と占有容量を取得する

test69.gif
SHQueryRecycleBinを利用するとゴミ箱に入っているファイルやフォルダの合計数とそれらの合計容量(単位:bytes)を取得できる。

注意すべき点は取得できた値は64ビット値のため、printfなどで数値から文字列に変更するときには「%I64d」のように64ビット処理する必要があることだ。

依存環境:ATL
#include "atlstr.h"

#include "shellapi.h"


bool	Test(void)
{
	HRESULT			hr;
	SHQUERYRBINFO	sShQueryRbInfo;

	::ZeroMemory(&sShQueryRbInfo,sizeof(SHQUERYRBINFO));
	sShQueryRbInfo.cbSize = sizeof(SHQUERYRBINFO);

	hr = ::SHQueryRecycleBin(NULL,&sShQueryRbInfo);
	if(FAILED(hr))
		return	false;

	CAtlString	strMessage;

	strMessage.Format(_T("アイテム数:%I64d\n容量:%I64d MB\n"),sShQueryRbInfo.i64NumItems,sShQueryRbInfo.i64Size / (1024*1024));

	::MessageBox(NULL,strMessage,_T("ゴミ箱の中身"),MB_OK);

	return	true;
}

プロジェクトファイルをダウンロード


カテゴリー「システム情報」 のエントリー