VB Tips Vol.03
ごみ箱の操作
ごみ箱の情報を取得したり、削除したりすることができます。
| 'ごみ箱の情報を取得するAPI Private Declare Function SHQueryRecycleBin Lib "shell32.dll" _ Alias "SHQueryRecycleBinA" (ByVal pszRootPath As String, _ pSHQueryRBInfo As tagSHQUERYRBINFO) As Long 'ごみ箱を空にするAPI Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" _ Alias "SHEmptyRecycleBinA" (ByVal hwnd As Long, ByVal pszRootPath _ As String, ByVal dwFlags As Long) As Long Private Type tagSHQUERYRBINFO cbSize As Long i64Size As Currency i64NumItems As Currency End Type Private Const S_OK As Long = &H0 Private Const SHERB_NOCONFIRMATION As Long = &H1 '削除の確認をしません Private Const SHERB_NOPROGRESSUI As Long = &H2 '削除時のゲージのダイアログを表示しません Private Const SHERB_NOSOUND As Long = &H4 '削除後にサウンドを鳴らしません Private Sub Command1_Click() Dim Ret As Long Dim lngFlags As Long Dim strDrive As String '何も表示されず、サウンドも鳴らさずに削除されます 'lngFlags = SHERB_NOCONFIRMATION Or SHERB_NOPROGRESSUI Or SHERB_NOSOUND 'ドライブを指定します(例:strDrive = "C:\") strDrive = "" '全てのドライブを対象とします 'ごみ箱を空にします Ret = SHEmptyRecycleBin(Me.hwnd, strDrive, lngFlags) If Ret = S_OK Then '成功 Label1.Caption = "成功しました" Else '失敗 Label1.Caption = "失敗しました" End If End Sub Private Sub Command2_Click() GetInfomation End Sub Private Sub Form_Load() GetInfomation End Sub Private Sub GetInfomation() Dim udtSHQUERYRBINFO As tagSHQUERYRBINFO Dim Ret As Long Dim strDrive As String Dim curTotalSize As Currency Dim curTotalCount As Currency With udtSHQUERYRBINFO .cbSize = LenB(udtSHQUERYRBINFO) 'ドライブを指定します(例:strDrive = "C:\") strDrive = "" '全てのドライブを対象とします Ret = SHQueryRecycleBin(strDrive, udtSHQUERYRBINFO) '成功 If Ret = S_OK Then curTotalSize = .i64Size * 10000 curTotalCount = .i64NumItems * 10000 Label1.Caption = "ごみ箱のサイズ : " & curTotalSize & " バイト" & vbCrLf & "ごみ箱のファイル数 : " & curTotalCount & " 個" Else Label1.Caption = "失敗しました" End If End With End Sub |
サンプルプログラムのダウンロード(6.28KB)
※このページの内容とサンプルプログラムのコードは多少異なる場合があります。