Fast, Simple, and Safe File Sorting β Organize your downloads in seconds.
- π Live Preview β See planned actions (MOVE, SKIP, CONFLICT) before touching files.
- π Smart Organization β Sort by type: Images, Docs, Videos, Audio, Archives, Code, and more.
- π§© Custom Rules β Map extensions (
.pdf,.jpg, etc.) to folders via the built-in Rules Editor. - π‘ Safe Moves β Hash-based duplicate detection + conflict resolution (skip or suffix).
- π§ͺ Dry Run β Test sorting without moving a single file.
- βͺ Undo β Restore everything from the last batch with one click.
- π§± Filters β Ignore clutter (
node_modules,.git, hidden/system files, etc.). - π₯ Cross-Platform UX β Open/reveal files in Explorer (Win), Finder (macOS), or
xdg-open(Linux).
.
ββ main.py
ββ src/
ββ gui.py # Tkinter UI: Dashboard, Preview, Settings, Rules
ββ preview.py # Live preview generator
ββ apply_moves.py # Move execution, conflict handling, undo
ββ scanner.py # Recursive file scanning with exclusions
ββ rules.py # Extension β folder resolution
ββ config.py # Defaults, validation, persistence
ββ types_map.py # Default categories
ββ worker.py # Background worker threads
ββ utils/
ββ hash_utils.py # Buffered file hashing
ββ os_ops.py # OS-specific open/reveal actions
veal actions
Requirements
- Python 3.10+
- Tkinter (Linux:
sudo apt-get install python3-tk) - Linux file opening:
sudo apt-get install xdg-utils - Clone this repo:
git clone https://github.com/AryanSLAYERRR/FileFlow - cd into Fileflow
Windows (PowerShell)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python n -m pip install --upgrade pip wheel setuptools
python main.pyymacOS / Linux (not tested should work though)
python3 -m venv .venv
source .venv/bin/activate
python3 main.pyy- Configure in Settings:
- Include paths (e.g.,
Downloads) - Optional destination roots ( where the folders will be created to sort, multiple can be set for multiple paths)
- Exclude patterns + conflict policy
- Add folders you want to exclude from scanning <<<<<<< HEAD<<<< HEADD
- Include paths (e.g.,
- Scan β Select βScan / Previewβ to analyze files.
- Press Scan/Preview to Scan the files to move
- Check the Subfolder BOX to scan folders in the DIR
- Scan is very memory efficient, it seamlessly scans 80k+ files with less than 30mb ram consumption
- Review β Watch planned actions in real time (MOVE, SKIP, CONFLICT).
- Rules β Map
.extβ folder (e.g.,.jpgβPictures). Falls back to defaults. - Sort β Use βDry Runβ to test; βSort Nowβ to apply moves.
- Undo β βUndo ALLβ restores from the last journaled batch.
- May become unresponsive if the sum of files to undo is large, just wait for it to become responsive again ========
- Scan β Select βScan / Previewβ to analyze files.
- Review β Watch planned actions in real time (MOVE, SKIP, CONFLICT).
- Rules β Map
.extβ folder (e.g.,.jpgβPictures). Falls back to defaults. - Sort β Use βDry Runβ to test; βSort Nowβ to apply moves.
- Undo β βUndo ALLβ restores from the last journaled batch.
e7d2d9a5450bd4834637127abd78f6c39e453e4b
π‘ Pro tips:
- Double-click a row β open folder
- Right-click a row β open/reveal/copy paths
Perform these in project root DIR
Windows
pip install pyinstaller
pyinstaller --noconsole --name FileFlow --add-data "src;src" main.pymacOS
pip install pyinstaller
pyinstaller --windowed --name FileFlow --add-data "src:src" main.pyLinux
pip install pyinstaller
pyinstaller --windowed --name fileflow --add-data "src:src" main.pyβΉ Tip: Use
--onefilefor a single self-extracting binary (slower startup).
- Include Paths:
Downloadsfolder by default - Exclusions:
.git,node_modules,__pycache__,.DS_Store, etc. - Conflict Policy:
skipβ Leave duplicates untouchedsuffixβ Append(1),(2), etc.
- Categories: Images, Docs, Videos, Audio, Archives, Code, Other
- Duplicate detection: Hash-based to avoid redundant copies
- Journal:
.fileflow_journal.jsonlin the first include path - Undo: βUndo ALLβ reverses the last batch
This project is licensed under the MIT License β see LICENSE for details.
β¨ Made with care for tidy folders β¨