Display folder sizes in Windows Explorer.
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.batcurrently expects Visual Studio 18 / 2026 Enterprise or Build Tools - CMake 3.20+
- vcpkg
- Download
foldersize-vX.X.X-win64.zipfrom Releases - Extract and run
install.batas Administrator - Folder sizes appear after the background scanner completes each folder
- Optionally run
status.batto confirm registration and Explorer loading
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 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 diagnosticsManual 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.
| 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 |
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.
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.
For how the hooks work, architecture, and performance considerations, see docs/technical-overview.md. For release steps, see docs/release.md.