Skip to content

sm18lr88/win-folder-size

Repository files navigation

FolderSize

Display folder sizes in Windows Explorer.

image

Prerequisites

Runtime

  • Windows 10/11 x64
  • Microsoft Visual C++ runtime, if it is not already installed on the machine

Optional

  • Everything 1.5a may be reported by diagnostics, but folder-size correctness doesn't depend on it.

Build

  • MSVC with C++20 support
  • The bundled scripts\build.bat currently expects Visual Studio 18 / 2026 Enterprise or Build Tools
  • CMake 3.20+
  • vcpkg

Quick Install

  1. Download foldersize-vX.X.X-win64.zip from Releases
  2. Extract and run install.bat as Administrator
  3. Folder sizes appear after the background scanner completes each folder
  4. Optionally run status.bat to confirm registration and Explorer loading

Building from Source

git clone https://github.com/sm18lr88/win-folder-size.git
cd win-folder-size
scripts\build.bat          :: Release build
scripts\build.bat Debug    :: Debug build (verbose logging)

Output: build\Release\foldersize.dll or build\Debug\foldersize.dll.

Install / Uninstall

Install and uninstall require Administrator privileges. status.bat only reports registration, Explorer loading, and optional Everything status.

scripts\install.bat        :: Register DLL + restart Explorer
scripts\uninstall.bat      :: Unregister + restart Explorer
scripts\status.bat         :: Check COM registration and diagnostics

Manual uninstall from an extracted release folder: run Command Prompt as Administrator, then run regsvr32 /u "%CD%\foldersize.dll".

Release ZIPs are self-contained: install.bat, uninstall.bat, and status.bat work when run from an extracted release folder next to foldersize.dll.

Comparison with Windhawk "Better File Sizes"

Feature Windhawk FolderSize
Folder sizes in Details view
Folder sizes in Tiles / Content / Details-pane / Status bar
Reparse point / junction / symlink resolution partial
PSFormatForDisplay (legacy dialogs)
Proactive folder-size refresh after changes TTL-based
SEH protection on extension hooks Windhawk-managed
Recursive-operation guard Basic guard RAII scoped guard
Fresh-only bounded LRU cache ✓ (50 MB, 5-min TTL)
Loading mechanism Windhawk service regsvr32 — standard COM
Uninstallation Requires Windhawk regsvr32 /u
Extension footprint Windhawk mod Single DLL, about 170 KB
External runtime dependency Windhawk Windows Explorer plus VC++ runtime

Release Process

Releases are built by GitHub Actions for transparency. Push a v* tag, such as v0.2.5, to trigger .github/workflows/release.yml. The workflow builds on windows-latest, runs the test suite, packages the release ZIP, uploads the ZIP and .sha256 checksum as workflow artifacts, then attaches both files to the GitHub Release.

Manual dry-runs can be started from the Release workflow in GitHub Actions; manual runs upload workflow artifacts but do not create a GitHub Release unless the run is for a pushed tag.

Acknowledgements

This project was inspired by m417z's excellent Better file sizes in Explorer details Windhawk mod, which pioneered the hook targets and approach used here. If you're already using Windhawk, that mod is a great option.

Technical Details

For how the hooks work, architecture, and performance considerations, see docs/technical-overview.md. For release steps, see docs/release.md.

License

MIT

About

Display folder sizes in Windows Explorer's Size column via a lightweight COM shell extension

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors