I wrote this program because synchronizing mp3 files from my music collection to my Sansa Fuze mp3 player with sd slot (seen as 2 different storage units from the PC) was a pain to deal with.
This tool will synchronize your music collection between your PC hard drive and your player internal memory + SD card.
Kinda like a crude Robocopy from a source to 2 destinations.
A hash is computed for each file on both PC and player:
Each file that's present on the player but not on the PC will be moved from the player to a chosen directory on the PC.
Each file on the PC source that's not on the player will be copied.
10Mo of available space will be kept on the player, and 10Mo on the SD card (overstuffed devices seldom works well).
First hash compute is really long, but wait, it will be cached for future use, so the second run will be way quicker.
Files will be copied within their parent directory, but no further: A file c:\foo\bar\baz\quux.mp3 on the PC will be copied as baz\quux.mp3 on the player.
A modified mp3 tag on the source will be considered as a different file (hash based comparison) => hence the file will be copied all over again.
For 2 discs albums, a duplicated folder.jpg file will only be copied once.
Only works in MSC USB mode (I guess this tool is pretty useless in MTP mode, isn't it?).
Only works in console mode (but a GUI will be easy to shape and to interface with the core dll).
SourcePath: Path of the source to synchronize with, like "c:\music"
DestinationPath1: Path of the destination 1 (player music dir), like "H:\Music"
DestinationPath2 (optional): Path of the destination 2 (player sd card music dir), like "I:\Music"
DestinationBin (optional): Were to put files found on the player, but not in the source, like "c:\MusicDeletedFromPlayer" - If not provided, extra or out of date files will be deleted.
ExtensionString (optional): Pipe separated extensions of the files to synchronize - If not provided, "".mp3|.jpg"" will be used.
Note: This tool might be used as a generic synchroniser, but there aretools really more suited than this one if it's a one to one synchronization.
This program is distributed under the GNU General