With the plethora of multi-media available for download from the Internet, it's no wonder people end up with duplicates. Some files, e.g. MP3, can be enormous and take up large blocks of hard disk space, which while not as precious as it was, still needs managing carefully.
The plan for Un-Mediator is to provide a simple search program to locate these duplicates, using a number of techniques. It's still in its early stages, the result of maybe 7 days' work. With more work it might even achieve the plan!
If you're interested in joining the project, you'll need the following pieces of kit:
C++ Builder 5 from Borland (the Free Compiler is not enough)
The Boost library (originally built using 1.30.0 but it is not yet version dependent)
Poseidon for UML Community Edition – free registration required
If you have some great ideas about replacing any of these with something different, I'm all ears.
Create searches for specific file types, and analyse the resulting list for duplicates.
File types to include JPEG (already supported), PNG, MP3, AVI, MPG, BMP
Present matching files making it easy to see if they really match or not, and perform some action.
Allow different actions to be performed, e.g. Delete, move, copy, rename.
Allow saving of search profiles for easy retrieval and fast regeneration.
The Current Reality
Create searches for JPEG files
Finds possible matches using file and image attributes
Displays the matches and allows certain operations – just delete, move and copy
At the moment, Un-Mediator is for Microsoft Windows only. There is scope to port it to other platforms, however.
I used Borland C++ Builder as the environment. The User Interface uses VCL, the rest of it is (mostly) Standard C++. Alas the Free Borland Compiler is not sufficient because of the VCL requirement. As with other platforms, there is scope to remove this dependency and use something more freely available.
As well as the VCL components that ship with BCB, I use some of the Turbo Power components. Un-Mediator uses the TurboPower ShellShock component.
Most of the non-user-interface code is written in Standard C++ using the Standard C++ Library (including STL). Currently it uses the library that shipped with Borland C++ Builder 5, but I want to actually use STLPort because it's miles more efficient that the Rogue Wave implementation. In addition to this, I use the Boost libraries for stuff like regular expressions, dates and times and file system handling.
This project started as an exercise in Unit Testing and Test Driven Development techniques. It grew into an exercise in using the Boost libraries, and later into using the Turbo Power components. All along it was an exercise in design techniques and UML diagrams.