a lightweight folder size analyzer for windows with explorer context menu integration.
- recursive scanning of folders and subfolders
- async scanning (ui doesn't freeze)
- visual usage bars showing relative size
- file type icons and color coding
- folder and file selection across directories
- analyze panel with zip and delete options
- image preview on double-click
- sortable columns (size, name, type, date)
- light/dark mode toggle
- auto-update from github releases
- right-click context menu integration
- handles "access denied" errors gracefully
cd FolderLens
pip install -r requirements.txt
build.bat
python simple_installer.py # run as adminthis installs to C:\Program Files\FolderLens and adds context menu entry.
pip install -r requirements.txt
python main.py --install # run as admin for context menupython simple_installer.py --uninstallor use FolderLens_Uninstall.reg.
# open gui
python main.py
# analyze specific folder
python main.py "C:\Users\Documents"
# console mode (no gui)
python main.py --console "C:\Users\Documents"
# context menu install/uninstall
python main.py --install
python main.py --uninstall- ☀️/🌙 - toggle light/dark mode
- ⬆ - check for updates
- 📊 - open analyze panel for selected items
- ••• - settings (icon size, preview toggle)
- ○/● - select/deselect files and folders
- windows 10/11
- python 3.9+
FolderLens/
├── main.py # entry point, cli
├── app.py # ui (customtkinter)
├── scanner.py # async folder scanner
├── file_utils.py # file type detection, formatting
├── version.py # version info
├── updater.py # auto-update handler
├── registry_installer.py # windows registry operations
├── simple_installer.py # python-based installer
├── build.bat # build script
├── requirements.txt
├── installer/
│ └── FolderLens_Setup.iss # inno setup script
└── dist/
└── FolderLens.exe # compiled executable
the app checks github releases for updates. to configure:
- edit
version.py - set
GITHUB_OWNERto your github username - set
GITHUB_REPOto your repository name - create releases with
.exeor.zipassets
# build exe
build.bat
# or manually
pyinstaller --onefile --windowed --name FolderLens --collect-all customtkinter main.pymit