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)
※このページの内容とサンプルプログラムのコードは多少異なる場合があります。


戻る ホーム