Windows 7:如何显示回收站的总大小

Windows 7:如何显示回收站的总大小

在 Windows XP 上,可以很容易地看到回收站的总大小,但在 Windows 7 上却看不到。为什么 Microsoft 隐藏/删除了此功能?我是否遗漏了什么?

备注1:我不需要知道回收站可以容纳的最大大小。

备注2:在回收站中选择了多个文件后,状态栏中会出现“查看更多详细信息”链接,但点击该链接不会显示文件总大小。微软显然已经对此进行了更改。

答案1

我也碰到过这种情况。

接受的答案不能满足我的需求。我想知道所有回收站的大小以及这些回收站的总数。

使用 WMI 提供程序,可以轻松实现这一点: (保存为 .vbs 文件)

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

编辑: 我更新了脚本,这样当分区没有回收站时它就不会崩溃。此外,字节现在显示正确

答案2

按项目类型对回收站进行排序,然后选择所有文件,不要选择任何目录。如果显示详细信息,您将在底部看到所有文件的大小。

另一种方法是选择系统根目录中名为 $Recycle.bin 的所有隐藏系统文件夹并查看选择的详细信息或属性,但上述方法应该只做...

DIR /S %SYSTEMDRIVE%\$RECYCLE.BIN | FINDSTR /C:File(s)

查看上述命令的最后一项,从命令提示符中获取回收站的大小。

我想知道当你想知道你获得了多少空间时,知道回收站的大小为什么很重要最好使用磁盘清理或类似的工具,但对于仅删除已删除的项目来说,它不是必需的。我认为他们没有使用这个功能,因为它必须查看不同的回收站,但事实上,只要付出额外的努力,它并不难实现...

在此处输入图片描述

答案3

如果微软能省去我们这些麻烦,直接实现 XP 回收站的功能就好了。太糟糕了。

我能找到的最简单的解决方案如下:

  1. 在文件夹选项中,打开隐藏文件和文件夹以及受保护的操作系统文件的显示。
  2. 浏览到您的 C:驱动器,打开$Recycle.Bin文件夹,然后右键单击并选择您看到的回收站图标的属性。

这将显示总大小。

答案4

您可以使用 Rainmeter 之类的程序,它可以在您的桌面上显示一个项目,其大小与回收站中项目的大小相同,虽然不理想,但是一种选择。

希望这可以帮助 :)

相关内容