Windows 7: How to display the total size of Recycle Bin
Sort the Recycle Bin by Item Type, then select all the files, do not select any directories. At the bottom you will be able to see the size of all the files if you show detailed information.
An alternative way is to select all the hidden system folders called $Recycle.bin in the System Root and viewing the details or properties of your selection, but above method should just do...
DIR /S %SYSTEMDRIVE%\$RECYCLE.BIN | FINDSTR /C:File(s)
See the last entry of above command to get the size of the recycle bin from a command prompt.
I wonder why it's important to know the size of the recycle bin though, when you want to know how much space you earn it's better to use Disk Cleanup or a similar tool, but for just getting rid of your deleted items it is not necessary. I think they left that feature out because it would have to look at different recycle bins, but indeed, with an extra effort it wouldn't be hard to implement...
I ran into this as wel.
The accepted answer didn't satisfy my needs. I wanted to know the size of all the recycle bins as well as the total of these.
Using the WMI provider, it is easy to accomplish this: (save as a .vbs file)
dim oFS, oFolder, fileSizeTotal
Dim objWMIService, objItem, colItems, colPartitions, objPartition, _
objLogicalDisk, colLogicalDisks
Dim strComputer, strMessage, strPartInfo,strDeviceID,ret
set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject( "WScript.Shell" )
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive")
For Each objItem in colItems
strDeviceID = Replace(objItem.DeviceID, "\", "\\")
Set colPartitions = objWMIService.ExecQuery _
("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & strDeviceID & _
"""} WHERE AssocClass = Win32_DiskDriveToDiskPartition")
For Each objPartition In colPartitions
Set colLogicalDisks = objWMIService.ExecQuery _
("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
objPartition.DeviceID & _
"""} WHERE AssocClass = Win32_LogicalDiskToPartition")
strPartInfo = strPartInfo & "Disk Partition: " & objPartition.DeviceID
For Each objLogicalDisk In colLogicalDisks
strPartInfo = strPartInfo & " " & objLogicalDisk.DeviceID
ret = ret & objLogicalDisk.DeviceID & "\"
if oFS.FolderExists(objLogicalDisk.DeviceID&"\$Recycle.Bin") then
RECpath=oShell.ExpandEnvironmentStrings( _
objLogicalDisk.DeviceID & "\$Recycle.Bin")
set oFolder = oFS.GetFolder(RECpath)
ShowFolderDetails(oFolder)
else
ret = ret & " -empty- " & vbCr
end if
Next
strPartInfo = strPartInfo & vbCr
Next
Next
Wscript.Echo ret & "---------" & vbCr & "Total: " & calcSize(fileSizeTotal)
WSCript.Quit
Sub ShowFolderDetails(oF)
Dim size
fileSizeTotal = fileSizeTotal + oF.Size
size = calcSize(oF.Size)
ret = ret & " = " & size & vbCr
end Sub
function calcSize(sizeInB)
Dim fSize, iKB, iMB, iGB, d
iKB = 1024
iMB = iKB * 1024
iGB = iMB * 1024
d = 2
if sizeInB >= iGB then
fSize = round(sizeInB/iGB,d) & " GB"
elseif sizeInB >= iMB then
fSize = round(sizeInB/iMB,d) & " MB"
elseif sizeInB >= iKB then
fSize = round(sizeInB/iKB,d) & " KB"
else
fSize = sizeInB & " B"
end if
calcSize = fSize
end function
edit: I updated the script so it will not crash if the partition has no recycle bin. Also Bytes are now shown correctly
It would have been good if Microsoft would save us people trouble to go to all these lengths and just implement the functionality the XP recycle bin had. Too bad.
The easiest solution I could find is the following:
- In Folder Options, turn on the display of hidden files and folders as well as protected operating system files.
- Browse to your C: drive, open the
$Recycle.Bin
folder, and then right-click and choose properties of the Recycle Bin icon you see.
This will show the total size.