Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

📂 File Organizer

A modern Python desktop application for Windows that automatically organizes files into categorized folders based on their file extensions.

Designed with reliability, performance, and simplicity in mind, the application features a modern native Windows interface, background processing, duplicate file protection, undo support, and detailed logging.


✨ Features

  • 📁 Organize files automatically by extension
  • 🖥️ Modern native Windows interface (Tkinter + ttk)
  • ⚡ Background processing (UI never freezes)
  • 📊 Real-time progress bar
  • 🔄 Undo last organization
  • ❌ Cancel operation anytime
  • 🛡️ Safe duplicate filename handling
  • 📝 Automatic logging
  • 🚫 Skips Windows system files (desktop.ini, thumbs.db)
  • 📦 Works as a standalone Windows executable

📁 File Categories

The organizer automatically sorts files into folders such as:

  • Images
  • Documents
  • Music
  • Videos
  • Archives
  • Scripts
  • Executables
  • Source Code
  • Fonts
  • Disk Images
  • Databases
  • 3D Models
  • Torrents
  • Others (unknown extensions)

🖥️ Requirements

Python 3.10+

Required libraries:

tkinter
pathlib
threading
queue
logging
dataclasses
shutil

Everything except tkinter comes with Python.


🚀 Installation

Clone the repository:

git clone https://github.com/yourusername/file-organizer.git
cd file-organizer

Run:

python file_organizer.py

📦 Build Windows Executable

Install PyInstaller:

pip install pyinstaller

Build:

pyinstaller --onefile --windowed --name FileOrganizer file_organizer.py

The executable will be located in:

dist/FileOrganizer.exe

🛠 How It Works

  1. Select a folder.
  2. Click Organize.
  3. Files are scanned.
  4. Files are moved into category folders.
  5. Duplicate filenames are automatically renamed.
  6. Progress is displayed live.
  7. Undo is available after completion.

📄 Logging

Any errors are written to:

%USERPROFILE%\file_organizer.log

This log contains:

  • Files that failed to move
  • Permission errors
  • Locked files
  • Unexpected exceptions

🔒 Safety Features

  • Never overwrites existing files
  • Automatically renames duplicates
  • Handles permission errors gracefully
  • Handles locked files
  • Operation can be cancelled safely
  • Undo support for moved files

📸 Screenshots

Add screenshots here.

Example:

screenshots/main-window.png

📂 Project Structure

FileOrganizer/
│
├── file_organizer.py
├── build_exe.bat
├── README.md
└── screenshots/

💡 Future Improvements

  • Dark mode
  • Drag & Drop folder selection
  • Custom categories
  • File preview
  • Extension editor
  • Auto-organize Downloads folder
  • Multi-language support
  • Settings page
  • Folder monitoring (real-time)
  • Zip large folders automatically

🤝 Contributing

Contributions, bug reports, and feature requests are welcome.

Feel free to fork the project and submit a pull request.


📄 License

This project is released under the MIT License.


👨‍💻 Author

Developed by Dulanga Niroshan Dasanayake

If you found this project useful, consider giving it a ⭐ on GitHub.

About

Python program that categorizes files by their extensions.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages