A robust Python application for automated file organization that categorizes files by extension into structured directory hierarchies. Provides comprehensive support for over 300 file formats across all major media and document categories.
FileOrganizer automatically sorts files into predefined categories: Programs, Documents, Archives, Videos, Pictures, Music, and Other. The application features intelligent duplicate handling, reversible operations, and extensive format recognition including modern codecs and professional file types.
- Comprehensive Format Support: Recognition of 300+ file extensions including contemporary formats (AVIF, HEIC, JXL) and legacy types
- Intelligent Directory Management: Creates category folders only when relevant files are present
- Conflict Resolution: Automated duplicate handling with sequential numbering
- Reversible Operations: Full undo functionality with persistent change tracking
- Cross-Platform Compatibility: Native operation on Windows, macOS, and Linux
- Modern Interface: Adaptive UI with system theme detection
fileorganizer/
├── main.py # Primary application interface and GUI components
├── organizer.py # Core file processing logic and undo operations
├── folders.py # Directory structure management
└── constants.py # Comprehensive file extension mappings
Minimum Requirements:
- Python 3.8 or higher (Python 3.10+ recommended)
- 50MB available disk space
- Cross-platform: Windows 10+, macOS 10.14+, Ubuntu 18.04+ or equivalent
Dependencies:
customtkinter
- Modern UI frameworktkinter
- Standard GUI toolkit- Standard library modules:
platform
,shutil
,json
,os
,winreg
Note: System theme detection requires Windows registry access and functions optimally on Windows systems. Other platforms default to standard theming.
Windows:
install_requirements.bat
Alternatively, download the standalone executable from the releases page.
Linux/macOS:
git clone https://github.com/TheCodeNoodle/file-organizer.git
cd file-organizer
chmod +x install_requirements.sh
./install_requirements.sh
pip install customtkinter
Launch the application:
python main.py
The interface will automatically adapt to your system's current theme settings.
Lossless formats (FLAC, ALAC, WAV), compressed codecs (MP3, AAC, OGG, Opus), and specialized formats including tracker modules and MIDI files.
Platform-specific executables, installation packages, scripts, and mobile application packages across Windows, Linux, and mobile ecosystems.
Office suites, publishing formats, markup languages, e-books, and professional documentation including LaTeX, Adobe formats, and OpenDocument standards.
Compression formats, disk images, legacy archives, and specialized containers including torrents and browser extensions.
Standard video codecs, professional cinema formats, streaming protocols, and subtitle/caption files.
Standard web formats, RAW camera files from all major manufacturers, vector graphics, professional design files, and specialized imaging formats.
- Case-insensitive extension matching with priority-based categorization
- Multi-extension file handling (processes final extension for compound formats)
- Preservation of system files and existing directory structures
- Atomic file operations with rollback capability
- Pre-flight validation of target directories
- Duplicate detection with intelligent naming conventions
- Change logging for complete operation reversibility
- Protection of critical system files and application components
- Extension-based categorization only (no content analysis)
- Single-directory processing per operation
- Theme detection limited to Windows registry
- No custom category definitions
- Custom Categorization: User-defined categories and extension mappings
- Batch Processing: Multi-directory organization operations
- Advanced Detection: Content-based file type identification
- Configuration Management: Persistent user preferences and settings
- Enhanced Logging: Detailed operation logs with timestamps
- CLI Interface: Command-line automation capabilities
- Progress Indicators: Real-time operation status for large directories
- Nested Organization: Sub-category creation based on file attributes
- Preview Mode: Dry-run capability for operation validation
- Smart Comparison: Content-based duplicate detection
This project follows standard open-source contribution practices. Issues, feature requests, and pull requests are welcome through the GitHub repository.
Complete documentation of supported file extensions and technical specifications is available in the project wiki and supplementary documentation files.
FileOrganizer provides enterprise-grade file management capabilities with the simplicity of a desktop application, suitable for both personal productivity and professional workflow optimization.