スポンサーリンク

ゴミ箱の内容量を取得

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 個
-----------------------

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: