windowsはいつの頃からか、ゴミ箱の中身のファイルサイズ合計が表示されなくなった。
知りたかったのでC++ + Win32APIでゴミ箱のファイル容量を取得してみる。
#include <iostream> #include <windows.h> #include <shellapi.h> // shell32.lib void GetRecycleBin(const char* drive = nullptr) { printf("\"%s\"\n", drive); SHQUERYRBINFO rbInfo = { sizeof(SHQUERYRBINFO) }; DWORDLONG i64MB; // ごみ箱の情報を取得する if (SHQueryRecycleBin(drive, &rbInfo) == S_OK) { i64MB = (rbInfo.i64Size / 1024 / 1024); printf("ファイルサイズ合計 :%I64u MiB\n", i64MB); printf("ファイル数合計 :%I64u 個\n", rbInfo.i64NumItems); } else { printf("ごみ箱の情報を取得できません。\n"); } printf("-----------------------\n"); } // メイン関数 int main(void) { GetRecycleBin("C:\\"); GetRecycleBin("H:\\"); GetRecycleBin(""); getchar(); return 0; }
"C:\"
ファイルサイズ合計 :1299 MiB
ファイル数合計 :114 個
-----------------------
"H:\"
ファイルサイズ合計 :6454 MiB
ファイル数合計 :739 個
-----------------------
""
ファイルサイズ合計 :7754 MiB
ファイル数合計 :853 個
-----------------------