Start

  Info

  Guided tour

  Download

  Support

Programmable file processor

for Windows XP, Windows Vista and Windows 7

 

Building "finefiles"

The programming process started in April 2010 after rediscovering my passion for programming in C/C++. Therefore finefiles was written in true, pure, lovely C/C++ (Microsoft Visual C++ 2010), accessing the Win32 API directly, with no use of MFC code and no libraries required. This was my first project using Visual C++, I used Borland BCC in the good old Microsoft Windows NT 4.0 days and Borlands Turbo C in the old days before that.

 

The first and basic reason for writing this application was to verify my private digital video & audio collection based on hard-discs since 2001. As a German and a perfectionist I wanted to make sure that this collection didn't become corrupted by bit errors, hard-disc failures and other horrible things that the digital world provides. To prevent the loss of data sometime in 2006 I started to fit every video with an MD5 hash in the filename, using the famous HashTab. finefiles now enables me to automatically review my files by comparing a fresh calculated hash with the stored one to detect errors. If errors occur - which is rare but can happen - I can check the disc in time and restore the files from a backup.

Because my collection had spread over a variety of hard-discs over the years and I did not want to become an archivist, there is no central database for the files, everything (title, date recorded, MD5, etc.) is placed in the filename (later in “Sidecars”) making it possible to move files from one disc to another or to move them internally from one directory to another simply by using windows drag & drop without any hassle. That's why I designed finefiles not primarily as a database, I didn't like the thought of software acting as guardian for my content.
 

Challenges

Apart from the hash comparison feature, another thing I planned from the beginning was the ability to automatically inspect shortcut files; my collection contains a variety of shortcuts to videos that match to different genres, for example. finefiles makes it possible - in a program-controlled fashion - to check if those shortcuts are alive and valid. After that I thought to myself that it could be useful for myself and others if finefiles was able to manage MPEG audio files (mp3s for example), so I began to implement this features... and found myself in MPEG Audio Header Hell (read more in the HitchhikersGuideToFinefiles.chm).

Another big challenge in programming was the scrolling mechanism in the main window. Based on simple window output routines I wrote years before it took me months and several attempts to get the software to display reliably without disturbances in the output, even during an ongoing process with fast screen output and simultaneous change of the window dimension. It worked almost completely stable since version 1.86.1 which was internally called “Scorpion” for that reason.

While developing finefiles and constructing dialogs for a couple of rules I had the idea for a complete new type of dialog, I called it “Multi Dialogs”, which symbolizes the connection of fixed and variable parts for rules and actions in a way I had never seen before. finefiles includes some other difficult to implement features such as the owner-drawn separator dropdown-lists with theme background, the glass effect in the about- and UniConfig dialog or the tricky file type detection and readout functions.
 

Greatly delayed release

During the development I decided early on not to release the version 1.0 - completed in summer 2010 - because this version was indeed the first version that could be useful but did not even come close to containing all the desired features and did not “look” the way I wanted it to. I continued to work on finefiles for the next month, developing the Timeline feature, increasing the program functions step by step, and wrote the guide.

In May 2011, finefiles finally reached 2.04.0 and seemed well on the way to being completed, I had two “magnificent” ideas which again delayed the release of the program: first, I decided to rewrite the complete configuration to unify the three different dialogs it had before into one clear UniConfig window with new design elements that finefiles now features. Second, I had the idea of storing additional information such as the 32 byte MD5 hashes (which overloaded the file name) and additional text- and image files in “Sidecars” using the "Alternative Data Stream" technology I had never used before. This resulted in the development of the Sidecar Explorer with drag & drop features and sophisticated file managing routines, which kept me occupied for weeks again. Finally, the version 3.0, two years after 1.0, lived up to my expectations.

finefiles is dedicated as freeware because I would like to make the feature of automatic file verification available to everyone - data loss seems to be a growing problem of our fast-moving times. If you find it useful and would like to support my work you may want to think about purchasing the professional version. Some features such as the JobWin and the StatWin are inspired by VirtualDub, an ingenious encoding program I used for years. Consider this as an homage to the author.

Building “finefiles”
 

Challenges
 

Delayed release
 

finefiles | Sophisticated file processor for Windows XP, Windows Vista

and Windows 7. Written by Christian Schnettelker | Imprint