A Windows desktop application for easily synchronizing dates between EXIF metadata in image files and file system attributes. This tool helps photographers and digital media enthusiasts manage their image collections with precise date control.
Dropping new files (cursor is not visible in the screenshot) to the application will add them to the list.
You can also drag and drop files from the list back to the desktop or any other folder to remove them from the list.
-
Bi-directional Date Synchronization:
- Set file dates (creation/modification) based on EXIF metadata
- Set EXIF date tags based on file dates (creation/modification)
-
Supports Multiple File Types:
- JPG/JPEG
- CR2 (Canon RAW)
- PNG
- TIFF
- HEIC/HEIF
-
Batch Processing:
- Process files in bulk
- Analyze files to preview dates before processing
- Recursive folder processing
-
Performance Optimized:
- Multi-threaded processing with configurable thread count
- Progress tracking for large batches
-
User-Friendly Interface:
- Drag and drop file/folder support
- Clean, modern interface using MahApps.Metro styling
- Detailed operation feedback
- Windows OS
- .NET 9.0 or higher
-
Download the latest release:
- Get the latest version from the Releases page
- Run the installer or extract the portable version
-
Build from source:
git clone https://github.com/mcanyucel/ExifDateSetter.git cd ExifDateSetter dotnet build --configuration Release
-
Add Files or Folders
- Click "ADD FILES" or "ADD FOLDER" buttons
- Drag and drop files/folders into the application
- Toggle "Include Subdirectories" to process nested folders
- You can also remove files from the list by dragging them again onto the application drop zone.
-
Configure Settings
- Select action type (EXIF to File Date or File Date to EXIF)
- Choose which file types to process
- Select specific EXIF tag (e.g., DateTimeOriginal)
- Select file attribute (Creation Date or Modified Date)
- Set default date for files missing date information
-
Process Files
- Click "Analyze" to preview date information
- Click "Start" to begin processing
- Use "STOP" to cancel an in-progress operation
The application is built with a clean architecture approach:
- Core library with interfaces and domain models
- WPF UI implementation with MVVM pattern
- Dependency injection for better testability
- Strategy pattern for flexible date conversion operations
- MahApps.Metro - Modern UI framework
- ExifLibNet.Updated - EXIF metadata manipulation
- MetadataExtractor - Image metadata reading
- CommunityToolkit.Mvvm - MVVM implementation
- Serilog - Structured logging
- Microsoft.Extensions.DependencyInjection - DI container
Contributions are welcome! Please feel free to submit pull requests or open issues to improve the application.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to all dependency authors and maintainers
- Inspired by the need for better date management in image collections