A simple, fast, and strict C# Windows Desktop utility for automatically organizing local folders.
Built with Windows Presentation Foundation (WPF) with Test-Driven Development (TDD), the FileOrganizer utility analyzes a source directory and intelligently maps its contents to sub-folders based on extension categories.
It handles complex routing:
- Pictures (
.jpg,.png, etc.) — Automatically sub-sorted by Camera Make/Model using EXIF data. - Movies (
.mp4,.mkv, etc.) - Audio (
.mp3,.wav, etc.) — Automatically sub-sorted by Artist using ID3 tags. - Documents (
.doc,.pdf*, etc.) - Archives (
.zip,.rar, etc.) - Executables (
.exe,.msi, etc.) - Books (ePub, Mobi, and any >30 page PDFs)
- Other (Catch-all)
Note: PDFs are analyzed using the PdfSharp library. Any PDF under 30 pages goes to the PDFs folder, any PDF over 30 pages goes to Books. Corrupted PDFs default defensively back to PDFs.
The Organizer features two explicit phases to maintain data safety:
- Analyze (Generate Plan): Dry-runs the transfer mapping entirely in-memory allowing users to review actions prior to making any filesystem operations. It smartly handles file collisions indicating if an overwrite or skip is required.
- Execute Plan: Physically performs the
Move,Copy, orOverwriteoperations asynchronously displaying progression via a simple progress bar.
- Windows OS (WPF constraint)
- .NET 10.0 SDK or newer installed on your machine.
To build the application using the cross-platform CLI:
-
Open a terminal (PowerShell, CMD, or bash).
-
Clone this repository and navigate to the root folder:
git clone git@github.com:gonzoga/FileOrganizer.git cd FileOrganizer -
Run the
.NET buildcommand:dotnet build
To launch the File Organizer UI directly from the command line:
cd FileOrganizer
dotnet runAlternatively, you can open FileOrganizer.slnx (or .sln) in Visual Studio 2022+ and press F5 to build and run the application.
This application was developed firmly with TDD. There are 50 comprehensive unit tests covering the Routing, PDF Heuristics, Collision, and Execution logic.
Run the test suite using:
dotnet test- Click Select Source Folder to pick the chaotic folder containing your files.
- Click Select Destination Folder to select where you would like the organized output (e.g.,
Documents,Picturessub-folders) to easily route to. - Check the "Copy Files (Leave Originals)" box if you wish to construct a duplicate, ordered catalog without altering the original source files.
- Click Analyze (Generate Plan). Wait for the progress bar to complete. Use the DataGrid table to review every planned internal move safely.
- Click Execute Plan once satisfied with the dry run to apply the changes!

