FileOMate v1.2.0 is a Python desktop application for automatic file organization on your desktop.
This repository contains the full source code, allowing you to customize organization rules, unmatched handling, folder monitoring, preview logic, UI layout, and real-time processing for professional workflows or learning purposes.
- 📁 Watch Folders — Monitor one or more directories for new files
- 🖱️ Drag & Drop Support — Quickly add folders to the watch list
- 🗂️ Intelligent Organization Engine — Move files based on keyword → target folder rules
⚠️ Safe File Handling — Automatic rename of duplicates to prevent overwriting- 🔍 Live Preview — See planned file moves without affecting originals
- 📂 Unmatched File Handling — Automatically move unmatched files to a dedicated folder
- 📈 Real-Time Statistics — Track moved, unmatched, and error counts
- 🧵 Multithreaded Processing — Responsive UI while processing large sets of files
- 🖱️ Interactive Preview / Log View
- Shows source → destination mapping
- Highlights skipped or already organized files
- 🎨 Modern Dark UI — Built with Tkinter + ttkbootstrap
- ⏸️ Stop / ▶ Start — Control real-time file monitoring safely
- 🧹 Clean Watch Folders — Reset all folders, logs, and counters instantly
- ⚙️ Fully Customizable — Modify rules, unmatched behavior, preview logic, or UI layout
- 📘 Built-In About / Guide — Feature overview, usage tips, and developer info included
- Clone or download this repository:
git clone https://github.com/rogers-cyber/FileOMate.git
cd FileOMate
- Install required Python packages:
pip install watchdog ttkbootstrap tkinterdnd2
(Tkinter is included with standard Python installations.)
- Run the application:
python FileOMate.py
- Optional: Build a standalone executable using PyInstaller:
pyinstaller --onefile --windowed FileOMate.py
-
Add Watch Folders:
- Drag & drop directories into the window
- Or click Add Folder
-
Configure Rules:
- Enter keywords and select target folders in the rule editor
- Save or load rules as JSON for reuse
-
Set Options:
- Enable Recursive Watching to include subfolders
- Enable Move Unmatched and select an Unmatched Folder if desired
-
Preview Moves:
- Click 🔁 Preview to see planned file organization
-
Apply / Start Monitoring:
- Click ▶ Apply / Start to begin real-time file organization
- Monitor live statistics for moved, unmatched, and error counts
-
Stop Monitoring:
- Click ⏹ Stop to safely halt processing
-
Clean Watch Folders:
- Click 🧹 Clean Watch Folders to reset all folders and logs
-
Help / About:
- Click ℹ Info for guide and developer information
Option Description
Watch Folders Add directories to monitor for new files Recursive Watching Include subfolders in monitoring Move Unmatched Automatically move unmatched files Unmatched Folder Destination folder for unmatched files Preview Show planned moves before executing Apply / Start Begin real-time file organization Stop Halt monitoring and file moves Clean Watch Folders Clear all folders and logs safely Rules Editor Create, delete, save, or load keyword → folder rules Live Statistics Track moved, unmatched, and error counts Log Live display of file move actions About / Guide Built-in help and overview
- Organized Files — Moved according to rules with safe renaming for duplicates
- Logs — Real-time log of moves, skipped files, and errors
- Python 3.10+
- watchdog — Real-time filesystem monitoring
- ttkbootstrap — Modern themed UI
- tkinterdnd2 — Drag & drop support (optional)
- Tkinter — Standard Python GUI framework
- pathlib, shutil, threading, queue — Core file and thread management
- Designed for continuous real-time file organization
- Processing is thread-safe and non-blocking
- Preview mode ensures no accidental file moves
- Fully portable when compiled as a standalone executable
FileOMate v1.2.0 is maintained by Mate Technologies, delivering a professional-grade smart file organization solution.
Website: https://matetools.gumroad.com
Distributed as commercial source code.
You may use it for personal or commercial projects.
Redistribution, resale, or rebranding as a competing product is not allowed.
