A comprehensive desktop application for visualizing, filtering, and exporting directory structures in various formats. Built with Python and PyQt6, offering an intuitive graphical interface and powerful filtering options.
Development Note: This project was entirely developed and tested using Claude 4 (Sonnet), Anthropic's latest AI model. Claude 4 demonstrates advanced code architecture, multi-file project management, and sophisticated GUI development capabilities, showcasing state-of-the-art AI-assisted software development.
- TXT: Plain text format for quick viewing
- HTML: Navigable web page with CSS styling
- JSON: Structured format for programmatic processing
- XML: Markup format for integration with other systems
- Excluded directories: Customizable list of folders to ignore (e.g.,
.git,node_modules) - Excluded files: Specific filtering for unwanted files (e.g.,
.gitignore,thumbs.db) - Included extensions: Targeted selection for specific file types (e.g.,
.py,.js,.css) - Size filters: Customizable file size ranges
- Temporal filters: Filtering by creation and modification dates
- Regular expressions: Advanced patterns for precise filtering
- Save and load predefined configurations
- Customizable preset system for different projects
- Import/export configurations in JSON format
- Italian (default)
- English
- French
- German
- Spanish
- Light/dark/system themes
- Interactive tree view with lazy loading
- Real-time search functionality
- Drag & drop directory selection
- Context menus for quick actions
directory-structure-exporter/
βββ main.py # Application entry point
βββ build.py # Executable build script
βββ core/ # Main business logic
β βββ __init__.py
β βββ exporter.py # Export engine
β βββ filters.py # Filtering system
β βββ config_manager.py # Configuration and preset management
βββ ui/ # User interface
β βββ __init__.py
β βββ main_window.py # Main window
β βββ export_tab.py # Export tab
β βββ filters_tab.py # Advanced filters tab
β βββ config_tab.py # Configuration tab
βββ utils/ # Utilities and services
β βββ __init__.py
β βββ file_utils.py # File operations
β βββ path_utils.py # Path management
β βββ directory_scanner.py # Asynchronous directory scanning
β βββ resources.py # Resource management (icons, assets)
β βββ translation_manager.py # Translation system
βββ translations/ # Translation files (optional)
- Python 3.8 or higher
- PyQt6
pip install PyQt6python main.pyTo create a standalone executable file:
# Install PyInstaller if not present
pip install pyinstaller
# Run the build script
python build.pyThe executable will be available in dist/DirectoryStructureExporter.exe
- Open the "Export" tab
- Select a directory using the "Browse..." button or drag & drop
- Choose the output file path and format
- Click "Export"
In the "Filters" tab you can set:
- File sizes: Size ranges in bytes
- Dates: Creation and modification filters
- Apply filters: Enable/disable filter application
The "Configuration" tab allows you to:
- Add/remove excluded directories
- Manage specific files to exclude
- Configure included extensions
- Use regular expressions for complex patterns
- Save custom presets
^temp- Folders starting with "temp"backup$- Files ending with "backup".*\.tmp$- Files with .tmp extension^data_\d+$- Patterns like "data_123"
Settings are automatically saved through QSettings. Presets are stored in JSON files for portability.
{
"excluded_dirs": [".git", ".vs", "node_modules"],
"excluded_files": [".gitignore", "thumbs.db"],
"included_file_extensions": [".py", ".js", ".css"],
"min_file_size": 0,
"max_file_size": "inf"
}- Lazy Loading: Progressive loading for large directories
- Asynchronous Scanning: Responsive interface during processing
- Caching: Optimization for repeated operations
- Modify
utils/translation_manager.py - Add language code to
available_languages - Insert translations in the
_translationsdictionary
To add new filter types:
- Modify
core/filters.pyfor logic - Update
ui/filters_tab.pyfor interface - Extend
core/config_manager.pyfor persistence
- Add method in
core/exporter.py - Update interface in
ui/export_tab.py - Test with various directory structures
- Permission errors: Run as administrator for system directories
- Large files: Set appropriate size limits
- Slow performance: Use filters to reduce the number of processed files
The application shows status messages in the bottom bar and informative dialogs for critical operations.
Project developed for educational and commercial use. Check the license file for specific details.
Contributions welcome! For improvement proposals:
- Fork the project
- Implement changes
- Test thoroughly
- Submit a pull request
This project is completely free and open source. If you find it useful and would like to support its continued development and updates, consider making a donation. Your support helps keep the project alive and motivates me to add new features and improvements!
Every contribution, no matter how small, is greatly appreciated! β€οΈ
For issues, bug reports, or feature requests, use the repository's issue system.
Developed entirely with Claude 4 (Sonnet) - Showcasing AI-powered software development
