用于计算目录树在一定时间段内占用空间的工具

用于计算目录树在一定时间段内占用空间的工具

有没有什么工具可以做到这一点?我正在使用 Total Commander 计算目录树中占用的空间,但我想将其限制为不超过一定天数的文件,但我不知道如何在 Total Commander 中做到这一点。有这样的工具吗?适用于 MS Windows。

答案1

文件夹大小树的大小

两者都带有动态过滤器,可以按创建日期/修改日期等进行搜索。Foldersize 还带有图表和图形,以便于可视化。

两者都是付费选项。

否则,这里有一个 power shell 选项命令,列出两个设定日期之间的文件。

Get-ChildItem -Recurse | Where-Object { $_.LastWriteTime -ge "2016-09-01" -and $_.LastWriteTime -le "2016-09-30" -and !$_.PSIsContainer }

上述命令检查 2016 年 9 月期间修改的文件。

  • Get-ChildItem列出给定文件夹中的文件/文件夹。
  • -Recurse递归列出所有文件。
  • Where-Object根据给定的条件过滤输出。
  • LastWriteTime检查在设定时间内修改的文件。CreationTime如果您要检查文件创建日期,请使用。
  • !$_.PSIsContainer仅返回文件。!反转文件夹的布尔值PSIsContainer设置为 true。

答案2

正如 Xalorous 指出的那样,这取决于您的操作系统。对于 Windows,PowerShell 脚本可能会有所帮助。基于这个 Stackoverflow一个可能的解决方案是:

# Set the path
$path = "<Directory>"

# Get a date which was 14 days ago, this will be how old files can be
$limit = (Get-Date).AddDays(-14)

# List all files and folders, including hidden ones, and select those which are not folders and whose creation time is "bigger" than limit
$files = Get-ChildItem -Path $path -Recurse -Force -File | ?{$_.CreationTime -ge $limit }

$totalsize = 0
# build the sum of each files size
$files | %{$totalsize += $_.length}

echo ("Total size of all "+$files.length+" files is: "+$totalsize+" Bytes");

可能代替的其他属性CreationTime可能是(例如)LastAccessTimeLastWriteTime

答案3

我尝试寻找这个工具,结果发现了一个不错的工具列表http://www.howtogeek.com/113012/10-best-free-tools-to-analyze-hard-drive-space-on-your-windows-pc/, 也这个这个。 我试过太空嗅探器因为这个可以按照日期过滤文件。效果很好。

相关内容