Media Transfer Utility is a Windows desktop app for organizing photos and videos from a source folder into a dated destination structure.
- Browse and select Source and Destination folders
- Organize media into folders by date:
YYYY/YYYYMMDD/<CustomFolderName>
- Optional creation of:
EditsfolderFinalfolder
- Optional removal of source files after successful copy
- Collision-safe copy (auto-appends
_1,_2, etc. when file names already exist) - Transfer progress and detailed log view
- Cancel in-progress transfer
- Optional log file export after run
- Light/Dark theme toggle
- Window and option state persistence between app launches
Images:
.jpg,.jpeg,.png,.bmp,.gif,.tif,.tiff,.heic,.webp
Videos:
.mp4,.mov,.avi,.mkv,.wmv,.m4v,.3gp,.mts,.m2ts
For each file, the app determines destination date using:
- Date detected from filename pattern
yyyyMMdd - EXIF metadata (
DateTimeOriginal, fallback EXIF date tags) - File last write time
- Windows
- .NET 10 SDK/runtime
From the project root:
- Restore/build:
dotnet build
- Run:
dotnet run --project MediaTransferUtility.csproj
- Launch the application.
- Select a source folder.
- Select a destination folder.
- (Optional) Change destination media folder name (default:
Original). - (Optional) Enable desired options:
- Remove source file after successful copy
- Create
Editsfolder - Create
Finalfolder - Save log file after run
- Click Start Transfer.
- Monitor progress/log and cancel if needed.
Application state is saved to:
%LocalAppData%\MediaTransferUtility\appstate.json
- Existing files in destination are never overwritten.
- If log export is enabled, a timestamped log file is created in the destination root.
