🚀 GitHub Showcase

PS-TreeSize

Last commit date badge Open issues count badge Repository size badge Latest release version badge
View on GitHub
Languages
PowerShell 100.0%

📖 README

PS-TreeSize

A PowerShell script that scans directories and displays a hierarchical tree view of folder and file sizes, similar to TreeSize Free.

Features

  • Recursively scans all subdirectories and calculates their total sizes
  • Opens an interactive, collapsible tree window by default on Windows (requires no extra flags)
  • Each row shows a proportional size bar so large folders stand out at a glance
  • Right-click any folder to open it in Explorer, copy its path, or move it to the Recycle Bin
  • Displays results sorted by size (largest first) at every level
  • Human-readable size formatting (B, KB, MB, GB, TB)
  • Defaults to the system drive ($env:SystemDrive) when no path is provided
  • Optional depth limit to control how many levels are displayed
  • Optional minimum size filter to hide small entries
  • Gracefully handles permission-denied errors

Screenshots

GUI mode (Windows default)

PS-TreeSize GUI showing a collapsible tree of folder sizes with proportional blue bars

Console mode (-NoGui)

PS-TreeSize console output showing an indented tree of folder sizes

Usage

.\Get-TreeSize.ps1 [[-Path] <string>] [-Depth <int>] [-MinSize <long>] [-Gui] [-NoGui]

Parameters

Parameter Description Default
MDINLINECODE8148803fd8b6ff30d7306efd7958573eENDMDINLINECODE Root directory to scan System drive (MDINLINECODE20f7ab922410b1b08cb0469b60a286feENDMDINLINECODE)
MDINLINECODE334ee60d511ecfffebe7473c8f3fb123ENDMDINLINECODE Maximum directory depth to display (MDINLINECODE1ee96f78ee0e9c54a17d1ba8fb833117ENDMDINLINECODE = unlimited) MDINLINECODEcb8cedca37b9e310ed417b7650d61b66ENDMDINLINECODE
MDINLINECODE99e995f81a6ca19ffb30982f4b7afa8cENDMDINLINECODE Minimum size in bytes to display an entry (supports MDINLINECODEfa2c26dcb8d4a3a89abdf7ff390dc3efENDMDINLINECODE, MDINLINECODEf58655cd9d4a89b22c23879d8c106178ENDMDINLINECODE) MDINLINECODE3979e18ed9edfac11e870ed3f9f7a18cENDMDINLINECODE
MDINLINECODEa5b3277203879441f2f580b99e52538bENDMDINLINECODE Force the Windows Forms GUI window (useful for clarity; GUI is already the default on Windows) *(see below)*
MDINLINECODE8b228a8bd10acfa9cb261af6f52090bcENDMDINLINECODE Print results to the console instead of opening the GUI window *(GUI is default on Windows)*
Platform behaviour: on Windows the GUI opens automatically unless -NoGui is passed. On Linux/macOS the console output is always used; passing -Gui on a non-Windows system raises an error.

Examples

# Scan the system drive – opens the interactive tree window on Windows (default)
.\Get-TreeSize.ps1

# Scan a specific directory
.\Get-TreeSize.ps1 -Path "C:\Users"

# Scan with a depth limit of 3 levels
.\Get-TreeSize.ps1 -Path "D:\" -Depth 3

# Only show entries larger than 100 MB
.\Get-TreeSize.ps1 -Path "C:\Windows" -MinSize 100MB

# Print to the console instead of opening the GUI window
.\Get-TreeSize.ps1 -Path "C:\Users\Demo" -NoGui

Console output (-NoGui)

Scanning 'C:\Users\Demo' ...

  300.56 MB  C:\Users\Demo
      175.00 MB  Videos
       75.00 MB  Downloads
       24.00 MB  Music
       21.56 MB  Documents
           15.06 MB  Personal
            6.50 MB  Work
                6.00 MB  Reports
        5.00 MB  Pictures
            5.00 MB  Vacation

Total:   300.56 MB

Requirements

  • Windows PowerShell 5.1 or PowerShell 7+
  • Run as Administrator for full access to system directories

🚀 Releases

No releases available for this repository.