A Windows utility to manage and persist custom folder icons. Extracts icons from resource files (DLL, EXE) and installs them locally alongside folders, making custom icons portable and resilient to source file changes.
| Download | Description |
|---|---|
FolderIconManager-GUI-win-x64.zip |
GUI application (recommended) |
FolderIconManager-CLI-win-x64.zip |
Command-line interface |
FolderIconManager-win-x64.zip |
Both GUI and CLI |
- Download
FolderIconManager-GUI-win-x64.zip - Extract to any folder
- Run
FolderIconManager.GUI.exe
No installation required β self-contained, portable executables.
Windows custom folder icons are configured via desktop.ini files that point to icon resources in external files (like shell32.dll or application executables). When these source files move, update, or get deleted, folder icons break.
This tool:
- Scans your folder structure for existing custom folder icons
- Extracts icons from their source files (with all resolutions preserved)
- Installs the icons locally in each folder
- Updates
desktop.inito reference the local icon - Applies correct file attributes (hidden, system, read-only)
The result: self-contained folder icons that survive source file changes.
The easiest way to use this tool is through the graphical interface:
- Run
FolderIconManager.GUI.exe - Click Browse to select a folder to scan
- Click Scan to find all folders with custom icons
- Review the list β icons are color-coded by status:
- π’ Local β Already using a local icon file
- π External β Using icon from DLL/EXE (can be fixed)
- π΄ Broken β Icon source file is missing
- Click Fix All External to extract and localize all external icons
- Watch the log panel for detailed progress
The command-line tool is called fim (Folder Icon Manager).
# Scan current directory recursively
fim scan
# Scan specific path
fim scan "D:\Projects" --recursive
# Show only folders with broken icons
fim scan "D:\Projects" --broken
# Show only folders with external (non-local) icons
fim scan "D:\Projects" --external# Extract icon from a DLL
fim extract "C:\Windows\System32\shell32.dll,4" "output.ico"
# Extract from an EXE
fim extract "C:\Program Files\MyApp\app.exe,0" "app-icon.ico"
# Extract from ICO file (copies with validation)
fim extract "existing.ico" "copy.ico"# Preview what would be done
fim fix "D:\Projects" --dry-run
# Fix all external icons in a directory tree
fim fix "D:\Projects" --recursive
# Force re-extraction even if local icon exists
fim fix "D:\Projects" --forcefim info "D:\MyFolder"Windows uses desktop.ini files to customize folder appearance:
[.ShellClassInfo]
IconResource=shell32.dll,4
InfoTip=My custom folder
ConfirmFileOp=0- Finds
desktop.inifiles withIconResourceorIconFileentries - Extracts the referenced icon with ALL available resolutions (16x16 to 256x256)
- Saves as
folder.icoin the same folder - Updates
desktop.inito use the local icon:[.ShellClassInfo] IconResource=folder.ico,0
- Sets attributes:
folder.ico: Hidden + Systemdesktop.ini: Hidden + System- Parent folder: Read-Only (required for shell to read desktop.ini)
- Notifies Windows Explorer to refresh the icon cache
Icons are extracted with all embedded resolutions preserved:
- Common sizes: 16x16, 24x24, 32x32, 48x48, 64x64, 128x128, 256x256
- All color depths: 4-bit, 8-bit, 32-bit (with alpha)
- PNG-compressed high-resolution images (Vista+)
This ensures icons look crisp at any DPI and in any view mode.
.exeβ Windows executables.dllβ Dynamic link libraries.icoβ Icon files (copied directly)- Any PE file with icon resources
- Windows 10/11
- .NET 8.0 SDK
- (Optional) Inkscape or ImageMagick for high-quality icon conversion
git clone https://github.com/guwidoe/FolderIconManager.git
cd FolderIconManager
dotnet buildThe build process automatically converts AppIcon.svg to AppIcon.ico for the application icon. For best quality:
- Install Inkscape (recommended)
- Or install ImageMagick
- Otherwise, a built-in .NET fallback will be used
# GUI application
dotnet publish src/FolderIconManager.GUI -c Release
# Command-line interface
dotnet publish src/FolderIconManager.CLI -c Releasedotnet testThe application icon is defined in AppIcon.svg at the repository root. To customize:
- Edit
AppIcon.svgwith your preferred SVG editor - Run
dotnet buildβ the icon will automatically be converted toAppIcon.ico - The icon appears in:
- The
.exefile icon (Windows Explorer) - The application window title bar
- The taskbar when running
- The
FolderIconManager/
βββ AppIcon.svg # Application icon source (SVG)
βββ Directory.Build.props # Centralized build configuration
βββ build-tools/ # Build-time utilities
β βββ ConvertSvgToIco.ps1 # SVG to ICO converter
βββ src/
β βββ FolderIconManager.Core/ # Core library
β β βββ Models/ # Data models
β β βββ Native/ # Windows API P/Invoke
β β βββ Services/ # Business logic
β βββ FolderIconManager.CLI/ # Command-line interface
β βββ FolderIconManager.GUI/ # WPF desktop application
βββ tests/
β βββ FolderIconManager.Tests/ # Unit tests
βββ artifacts/ # Build output (gitignored)
βββ bin/ # Compiled binaries
βββ obj/ # Intermediate files
- Windows 10/11 (x64)
- No .NET runtime required for release downloads (self-contained)
- .NET 8.0 SDK required only for building from source
MIT License β see LICENSE.txt
Contributions welcome! Please open an issue or PR.
- Icon extraction approach inspired by TsudaKageyu/IconExtractor