Changelog – the latest version

A history of detailed changes in recent releases:

(starting in 2015 as a nominal baseline: the earliest build of all (not released publicly) was in 1996):

Version 17.10 (2017 Oct 01)

  • Deletion of a folder is enabled, but only if the folder is empty (no files or subfolders)
  • Dragging a file name out of the grid is enabled – which permits file or filename copying, but not moving the file away
  • Renaming – Rename form default button is selected side only (rather than both sides) if the file names on each side are the same but the files themselves are different
  • Renaming – Double-clicking upper textbox in the Rename Multi form repeats the most recent entries
  • Copying or moving a file – if there is a file name conflict where the file name already exists in the target folder, there is now a clearer indication of which of source or target file is “Newer” or “Bigger”
  • Remove Empty Subfolders – always show the folder in the visible area of the grid when offering to remove it
  • New Command line parameter “-nf” [= No Fill] – don’t fill (‘refresh’) the grid content when starting up
  • New Command line parameters “–” or “//” mean ignore remaining arguments, treat as commented out
  • Bugfix – “Select All” button no longer includes information rows
  • Bugfix – Correct behaviour when picturebox is minimised while in Zoomed mode
  • ShellBrowser component has been updated to most current version 5.40
  • Many minor UI tweaks and enhancements, code simplifications and polish

Version 16.09 (2016 September 30)

Version numbering will now track the year and month.

Minor bugfixes and UI polish: including

  • Picture viewer window will retain zoom level from the previous image
  • Status bar will show name of file on the unselected side, if the row on the selected side is empty
  • If renaming a file fails and the user retries, the (failed) new name is shown again so that the user can fix it
  • During a multiple copy, move, or delete, if one file fails the user can choose to proceed with the rest

2016 January 01 – New year, new build

A few additional facilities (little features that I found to be useful to me), more polish, and a couple of fixes to minor bugs – because New Year is a time for renewal, and here a time to consolidate and release these changes out into the world.

  • New keyboard shortcut ‘\’ or ‘|’ : Find next row with matching names, but different size/date properties
  • Copy To / Move To form now has a dropdown menu to select previously used folders
  • View | Show previous messages will now show several previous ones, not just the very last one
  • Navigation characters < and > (find next file to copy) can also be used within the Picture viewer
  • Picture viewer window – keyboard + and – will change zoom level (registered users only)
  • Picture viewer window – bugfix – ignore left/right arrows if in single column mode
  • File filter – bugfix – no longer highlighted when doesn’t have keyboard focus
  • Thumbs tab – bugfix – clear the right-hand thumbnail if in single column mode
  • Double-clicking the file filter to reset to “*.*” will also immediately refill the grid
  • Fix to address nomenclature changes in Windows 10

2015 May 04 (Star Wars day – “May the fourth be with you”)

This was a general bugfix and UI enhancement/polish release.  PickSync is still the finest file synchronisation utility in the federation, whether your loyalty lies with the imperial powers or the rebel alliance.  Or if you’re just a Windows power user who wants a superb tool.

  • Searching – Added new search option – search in the selected side only
  • Searching – drop the “search from top” option as unnecessary
  • Searching – Search always places found row in visible portion of grid
  • Rename multi – ensures each file row is visible – and shows in picbox if open – as it is renamed
  • Rename multi – now will not apply any text-replace rule to the file extension
  • Rename multi – now offers chance to retry with different rule after error
  • Rename multi –now preserves different upper/lower case on each side to the extent possible when not replacing characters in the file name
  • Rename multi – Ensure status strip will always update immediately after rename
  • CopyTo/MoveTo form – separate last-recent-used folders for left and right side of grid
  • Picture viewer window – Selectable zoom levels (registered users only)
  • Picture viewer window – Fixed crash if a .gif file had been misnamed as .jpg
  • Picture viewer window – Close quickly with Esc key (“Boss Key”)
  • File Name Filter – Don’t match on 8.3 filenames (workaround for Windows legacy annoyance/ issue)
  • Can now drop folders into areas of grid below the list of files if that list does not take up the whole area
  • Ctrl-Home, Ctrl-End  move focus & selection to the first / last entry in grid
  • Warn if a folder listed in the grid has ceased to exist (e.g. usb drive removed, folder renamed)
  • Updated component to its latest version 5.2.1
  • Extended expiry date of this release to 31 December 2015

2015 January 01

Baseline release, new version for the new year.  Future changes will be recorded relative to this version – because I’m proud of it and of all the work that went into it.


The 1st January 2015 build

New Year, new build.  I uploaded it on 1st January 2015, having spent a little time reviewing and consolidating over the Xmas break .  I wanted to mark the New Year with a thoroughly polished PickSync, gleaming and solid like Carrara marble (see image below).

And I think it is (mind you, it was pretty good already).

What’s changed since the November 2014 build?  To be more specific:

  • Pan and zoom in the picture viewer  – added scroll tabs when the image is enlarged.
  • Animated gif viewing – at actual, enlarged or reduced sizes.  PickSync is a terrific animated gif viewer.
  • Option to merge both sides of the grid when saving the file list as a text file.
  • Additional preset options in multiple rename function.
  • Significantly revised help file.
  • Found workaround for .net feature (I say bug) ignoring ampersand character when filename includes one.
  • Fixed problem with keyboard shortcuts sometimes not working in picture viewer.
  • General cosmetic UI improvements and simplifications.

Of course, I still love feedback.  Please do let me know of anything you think could be fixed changed or improved.  Thank you and best wishes for 2015!

PickSync & Marble


The November 2014 update

The new (November 2014) version of PickSync consolidates a number of new features added over the summer, after extensive testing on my own systems (including using PickSync for regular backing-up of its own source code!).

The principal new features include:

  • The “Rename” option (right-click a file name and choose rename) now enables files on both sides of the grid to be renamed simultaneously.  Rename both the main and backup copies of a file in a single operation.
  • Better yet, the “Multiple Rename” option enables renaming of a group of files in one operation.  Add a descriptive prefix or suffix, or replace a phrase within a filename with another.  “DSC00###” becomes “Holiday in Venice 00###”.  Again, do this to files on both sides of the grids simultaneously.  Do this to files you saved long ago.
  • The “Picture Viewer” window now correctly shows images in the correct orientation (landscape/ portrait/inverted), reading data embedded by the camera.
  • The “Picture Viewer” window now permits zooming and panning of images.  Click the zoom button, then hold the mouse down and move around to pan in the zoomed image.
  • Various UI improvements, some tweaks, and some polish.

All of these supplement PickSync’s core feature – the comparison of folder contents and the ultra-simple copying of files between them.

PickSync ss-All of PickSync’s best and unique features are still available:

  • Favourite pairs of folders – saving of a pair, and easy choice of a saved pair.
  • Versatile selection of files displayed (all/same/different, or only those which need to be updated).
  • Safe Mode, enabling all operations to be simulated without making any changes to disk contents.

Anyone who does not completely trust cloud storage should use PickSync for local backup!

PickSync also provides an uninstaller – I hope you won’t want to use it, but you should feel confident to install the program knowing that you can remove it completely if you don’t wish to keep it on your system.


What – exactly – is installed?

When installing a new application, I like to know what it does to my computer – the extent to which I trust it depends in part on how much detail is provided.  So it seems right to be candid here about what PickSync installs.

The PickSync setup program is created using Inno Setup, a very widely respected installation builder.  Inno also provides an uninstaller, which does a splendid job of removing everything that it originally installed.  Though I hope you never need it, knowing that it’s there should give you the confidence to install in the first place.

The setup program does the following:

  • It creates a new subfolder, …\PickSync, in your Windows Programs folder (usually C:Program Files).  Into this it places:
    • PickSync.exe, the application itself.
    • PickSync-help.chm, the Help file.
    • PickSync_licence.txt and PickSync_readme.txt, self-explanatory text files.
    • ShellBrowser.dll, a utility needed to manage the left and right folder trees.
    • unins000.exe and unins000.dat, the uninstaller.
  • It creates a data folder, …\PickSync, in your application data folder (usually C:Users[username]AppDataRoaming).
      • PickSync.ini is placed here.  This contains details of your preferences (including Favourite folder pairs).  It is updated when the program is closed, and backed up to a file PickSync.ini.bak.
  • It creates a program group, PickSync, in your Windows Start menu, which contains links to:
    • The program itself, and
    • Its uninstaller.
  • Finally, it may create a link on your desktop and/or a quick launch icon: these are options offered during setup.

All of the above are completely removed if PickSync is uninstalled.  So please now install it with confidence: what are you waiting for?

No phoning home!

One of the reasons that I created PickSync was that, although I was aware of commercial backup software, I could never be completely sure of what – exactly – was actually being copied or overwritten.   Were files being needlessly copied – backing up the backup files?  And was some text being lost because no automatic means can tell, in the general case, whether a difference between two files was due to an addition in file A or a deletion in file B (in a simple case, compare dates: but if both files may have been edited independently, all bets are off).

Similarly, suppose a file appears in only one of two otherwise similar folders – was it created in folder A or was it deliberately deleted from folder B?  I didn’t trust any app I knew to get this right, reliably and invariably.

This paranoia meant that I wanted to be able to see for myself exactly what was happening.  All the other added flexibility and power user features followed.

The same paranoia means that I intensely distrust software that “phones home” – accesses the internet under program control.  A user cannot then be sure what is being transmitted, or in which direction.

I have therefore not provided any “Automatic Update” (or even a “Manual Update”) function.  PickSync only accesses the internet in two special cases, both ONLY as a result of a clear and express user request:

  • The’ Help | Visit Website’ option will open the home page of this website in your browser, if you wish.
  • The ‘Get registration code’ button will try to set up a standard form email message to me, requesting a code.  Even then, it will not send it.  It will wait for you to enter your name, and you must yourself then click ‘Send’ in the message before it is actually sent.  So it is the user, and not PickSync, that actually sends the message.

What’s different, what’s better

The obvious way to generate a dual-folder display is simply to list all of the files in each folder, sorted by file names and with matching file names aligned, and to provide an indication of which is newer if they are not identical.  So much was already known (but never so well implemented as here!).

I was concerned that such a display could sometimes provide too much unnecessary information – too many rows of files – obscuring what mattered.  Large folders might contain many identical files with only a few differences scattered around, making it tedious to find and even more tedious to select each of them.

I started from first principles, and reasoned that there were only five possibilities to be considered.

If a file name was common to two folders then (i) the files could be identical, or (ii) the file in the first folder could be newer, or (iii) the file in the second folder could be newer.

But if a file name was NOT common to the two folders, then either (iv) it was unmatched in the first folder or (v) it was unmatched in the second folder.

PickSync provides checkboxes which determine which file names are displayed, and which are left out, depending on whether the file name corresponds to one of the above five possibilities:

Moreover,  I appreciated that some combinations of these possibilities could be useful for different purposes.  PickSync therefore has a dropdown menu that permits the user to select certain combinations, named to denote their purpose.

Different choices mean that different checkboxes are selected …

… resulting in selective display of the files in the grid:

These different options are useful in different ways:

  • All: The default, obviously displays all the files in both folders
  • Left side only: displays all files in the left folder.  Files which are only found in the right folder are omitted.
  • Update from left: displays files on the left which are (i) newer than those on the right, or (ii) are new and have no corresponding file name on the right.  Useful for backing up the folder on the left, as it lists only those new/newer files that have not already been saved in the folder on the right.
  • Different: displays all files which differ, i.e. everything except those where the file name and date match.  Useful for two-way synchronising.
  • Matching name: The file names match, but the dates may or may not do so.
  • Identical: the file names and dates both match.  Useful for identifying duplicated files that the user may wish to remove from one of the folder.

The drop-down menu allows very rapid selection of what file names will be displayed in the grid.  In turn this makes it very easy to select groups of individual files for copying or moving.  (In the ideal case simply “Select all”, as the grid will only be displaying those files with the characteristic of interest).

In this way the user has quick and simple – but very powerful – control over the synchronisation of folders.  I have found this to be very helpful for my own day to day needs, and now hope that others will too.

“PickSync – I invented it”

Microsoft didn’t invent it in Windows 7, so I had to.

Of course, it depends what “it” is.  The idea of a side-by-side folder display isn’t of itself new: I first saw it in a very useful text-based program called Dirmatch running under DOS on 5″ floppy disks in the mid-1980s.  Dirmatch wasn’t upgraded for Windows, but as my personal storage moved to 3″ disks and then Jaz drives, and I found myself shuffling these between home and work more frequently, the need for selective file copying became more pressing and Windows Explorer was too blunt a tool.

I drafted the central core of the engine on paper on a beach on Grenada in the late 1990s.

The author in the Caribbean when the program was first drafted,
here seen contemplating boundary conditions and error scenarios.

Initial versions of the program were written in Delphi (a variant of Pascal packaged by Borland).  I never cared for the language: it was much too verbose, and I felt that Borland had lost the plot after their wonderful implementations of the C language (Turbo C) in the 1980s.  When Microsoft released its C# language and the .NET platform, I switched to that and have never looked back.  I’m currently using the freely-downloadable Visual C# Express Edition for program development.  The folder trees are ActiveX components from a licensed copy of Jam Software’s ‘Shellbrowser’ package.  The help files were prepared with HelpNDoc and the installer is Inno Setup.  The icon was created with IcoFX (and I am still working on a decent design for it, but it’s not yet a priority).

Some drafts of the icon – not finally there yet!

As the program became more and more useful to me, I continued to add features that I found convenient.  Originally it worked only with a single folder on each side.  Subsequently I added the ability to compare subfolders.  This led to the addition of the “Favourites” button.  The Safe Mode helped me to experiment. The ‘Filter’, ‘Report’, ‘Options’, ‘Search’ and ‘Thumbs’ tabs followed later, not necessarily in that order.

It has now matured sufficiently that I am considering distributing it more widely.  I hope you will find PickSync as useful as I have done.