Windows のごみ箱情報をプログラムから取得するには SHQueryRecycleBin 関数を使います。(戻る)
64 ビット整数の扱い
- DWORDLONG 型は 64 ビット整数で、環境によっては __int64型、unsigned long long 型が利用できます。
- また、コンパイラが VC++2003.NET の場合は 64 ビット整数の書式制御文字列は『%I64u』となります。
- なお、コンパイラが C99 に対応してるなら『%llu』で 64 ビット整数を表示できます。
プロトタイプ宣言
HRESULT SHQueryRecycleBin( LPCTSTR lpRootPath, // ドライブのパス名 LPSHQUERYRBINFO lpSHQueryRBInfo // ごみ箱情報の構造体へのポインタ );
構造体
typedef struct _SHQUERYRBINFO { DWORD cbSize; // 構造体のサイズ DWORDLONG i64Size; // オブジェクトの合計サイズ DWORDLONG i64NumItems; // オブジェクトの総数 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
サンプル
#include <stdio.h> #include <windows.h> #include <shellapi.h> // shell32.lib // メイン関数 int main( void ) { SHQUERYRBINFO rbInfo = { sizeof(SHQUERYRBINFO) }; DWORDLONG i64MB; DWORDLONG i64Major; DWORDLONG i64Minor; // ごみ箱の情報を取得する if ( SHQueryRecycleBin(NULL,&rbInfo) == S_OK ){ i64MB = (rbInfo.i64Size * 100 / 1024 / 1024); i64Major = (i64MB / 100); i64Minor = (i64MB % 100); printf( TEXT("ごみ箱の合計サイズ:%I64uバイト(%I64u.%02I64uMB)\n"), rbInfo.i64Size, i64Major, i64Minor ); printf( TEXT("ごみ箱のファイル数:%I64u個\n"), rbInfo.i64NumItems ); } else{ printf( TEXT("ごみ箱の情報を取得できません。\n") ); } return 0; }
- shellapi.h ヘッダをインクルードして下さい。
- shell32.lib ライブラリをインポートして下さい。
補足情報
- 全てのドライブのごみ箱を空にするには、第1引数に NULL を指定します。
- 指定のドライブのごみ箱を空にするには、第1引数に "C:\\" の文字列を指定します。
関連記事
- ごみ箱のクリア
- ごみ箱情報の取得
- [HSP]クリーニングの命令群
※コメント投稿者のブログIDはブログ作成者のみに通知されます