Directory Compare (DC4W)

external links: MS Windows . Back to Projects . Home

in-file links: preamble - commands - downloads - Beyond Compare - FileZilla - MD5 - SHA1 - end


To compare two folders, the old, and the new, and to compare individual files, within the folders, is VERY IMPORTANT to a programmer ... and perhaps equally important to HTML authors ...

2010-04-17: Minor update, adding (temporary) 'Exclude File <selected>' to right mouse button context menu.
2009-01-23: Have now started to use the open source, WinMerge, and so far it is looking good.

This is just the latest, in a long line, so it is called DC4W - the 'DC' - that's easy, 'Directory Compare' - the 4 was the 16-bit to 32-bit change ... and the 'W', for 'Windows, of course ... here is a typical view -

dc4w-01 png image

Red background are files 'Only in Left', yellow background, files 'Only in Right', red are changed, but older, green are changed and newer ... there are many 'filters' to change this view ... and in 'expanded' view, does a line-by-line compare of the two chosen files ...


Command Line

The program DC4w accepts some command line options, in addition to the two directories to compare. Should one day write a propeer help file!

-r[-|+]]=Recursive [-L] Shallow [-N=No A.Zip]
-s[slrd][:outfile]] Save File List
-d[slrd][:outfile]] Write Difference File
NOTE: if outfile given file written and app exits
-Ifilename, or mask, to add input file names
-x[-|+[nn]]] Disable/Enable exclude list [num]
-xd:<[@]dirs>|-xf:<[@]files>] Specific exclude items.
-xd[fp|cvs|svn|git|all] to exclude FrontPage, CVS, SVN, git, or all these (hidden) folders. Indicates it is a ZIP file (seems broken!)

case 'C': // case flag
case 'D': // write a DIFFERENCE file
case 'E': // -E no expand if only 1 in wd_initial
case 'I': // include file names FIX20051204
case 'L': // shallow - no recursive?
case 'N': // no zip
case 'R': // Recursive
case 'S': // Save a FILE LIST
case 'T': // ignore date/time
case 'X': // EXCLUDE D=Directories F=Files, or -X+11 to exclude List11 [Exclude]
case 'Z': // one of the COMPARES is a ZIP file



The following table gives the versions over the last few years. Clicking on the file name should commence a download of the ZIP file. If that does not work, you can try a Right Mouse Button click, and choose 'Save Target As ...'. You can check its integrity by comparing the MD5 digest string. Below, for the earlier files I have also given the SHA1 digest, and where to find the source to build these digest utilities.

As usual, take care downloading and running things from the web! It is highly recommended that you download the source, and compile it yourself. Microsoft offers an 'Express Edition' for free, of their C/C++ IDE tools...

Downloadable source and binaries for WIN32
Date File Size Notes Digest
08/08/2013 859,203 Source 3df9703c64d83b5b0ea03770b4e295d3
08/08/2013 232,116 Runtime 525babb44b2054f1b36fe2821db8e2fb
Older versions
27/07/2010 216,538 Runtime f1bc2744584c1c83aa4752e1dc34d313
27/07/2010 849,016 Source 58f01fb6d833eccfee474ad916822615
17/04/2010 216,473 Runtime bb5e1c3bfa04e817599ce79ba00fea67
17/04/2010 848,964 Source 01c26da912b561f0ad8098ff3dfc2b60
04/02/2010 216,360 Runtime 5fea544333fd4db588c1423216bd5a34
04/02/2010 848,604 Source f8406319a75d5a3ea6a0a08705a1ffd7
25/11/2008 215,597 Runtime f4eee4f9570c0e890c5cc21e4eeb539e
25/11/2008 836,054 Source 280308a9e0bf4cba25cb89243cde97e5
October, 2007 213,377 Runtime d34b613b221c9adfc5cedb9fd503804c
October, 2007 843,812 Source 932f34c52455ad0857403744bb796c4e
May, 2007 213,125 Runtime d34b613b221c9adfc5cedb9fd503804c
May, 2007 843,112 Source 932f34c52455ad0857403744bb796c4e
December, 2006 845,811 Source 4437dbafd66f021bf5f6783af6995cf9
December, 2006 211,828 Runtime d4c048a10aa89e0136a92509bb37062f
November, 2006 843,819 Source 1b9b2bab16d6d8da27771b773acc29c1
November, 2006 211,589 Runtime 1447348884f821329337c3cb4743a4a6
October, 2005 816,726 Source fa001bf117c0bc42bf195a7db00df525
October, 2005 219,404 Runtime b3d12b235037b82602dd72863a1deebc
December, 2004 803,120 Source 8abfa189c70edbcead9b51e6998381cc
December, 2004 305,827 Runtime 740972e147e83ebe7f873c3133685d6c

The December, 2004 was built using Microsoft Visual C/C++ of that time, MSVC6. The October, 2005 was built using MSVC7.1, and subsequent usually using Microsoft Visual C/C++ .NET 2005 Express, MSVC8 ... As always, a small warning - take care with downloading, and using binaries from the web ;=(( A sign of our times ... see 'File Security' below ...

Another 'directory compare' was commenced, BUT NEVER COMPLETED! But perhaps contains some more work on a list...

2009-01-24 7,359 Runtime bea24f7a13f4db569c87e34b936681b0
2009-01-24 17,247 Source 04c0099d98f1c3647936c6346e870ba8


Beyond Compare

At present, a lot of the functionality, and more, has been taken over by a program I purchased, called 'Beyond Compare' ... see ... it does ALL my dc4w does, and more ... and it allows 'remote' server updating, via FTP ... very neat indeed ... an excellent buy ... but ...

More recently, January 2006, I have had some difficulty, on certain ftp connections, with the FTP client, built into Beyond Compare ... I was getting unexplained delays when uploading, even on very small files ... this delay was for just 10-25 seconds, but it brought the file throughput to bytes per second, instead of KB per second! ... a friend pointed me to two newer freeware ftp clients, WinSCP, and FileZilla ... I downloaded both, including source, but have only really tried FileZilla ... Beyond Compare FTP transfer was subsequently FIXED ;=)) by checking 'Passive Mode' in Options ...

April, 2008: Upgraded my 2.4.3 to 2.5.2, installed in my new Vista machine, and it looks fine ...


FileZilla - a real cool application!

It has a very busy, multiple panes, user interface, with the left side being the local file system view, and the right being the remote file system, when connected ... the top pane shows the ftp exchange, and it establishes multiple ports, and does simultaneous transfers, with lovely little independent progress bars in the bottom pane ... it has a nice connection manager for setting up multiple ftp sites ... the drag and drop, of multiple selections, is certainly very easy to do ... this is already well on the way to being my favorite, preferred ftp client ...

Screen snapshot of FileZilla

Screen snapshot of FileZilla

It is interesting to note, in the respective sources, that both use PuTTY code to do the SSL (secure socket layer) connection ... in fact, from what I saw from a brief run of WinSCP, it has a very similar dialog interface to that which PuTTY offers ...

Initially, I could not compile either from source - WinSCP requires Borland's tools, which I do not have! - and FileZilla had a dependence on libidn (through idna.h), but I was able to compile it from source subsequently ;=)) FileZilla screen snapshot is given below ...


File Security - MD5

For whatever it is worth, below are the MD5 Message-Digest Algorithm, numbers on these two October, 2005 zips -
MD5 ( = fa001bf117c0bc42bf195a7db00df525
MD5 ( = b3d12b235037b82602dd72863a1deebc
These were generated from the MD5 'C' source found here - ... Thank you for the zip - a copy of the tar.gz is in the table below, RSA Data, in case this site 'disappears' ... And assume this code was taken from the RFC site - ...

Another source can be obtained from : This code states it was derived from the RFC - - A copy of the original Aladdin Enterprises source is in the table below. I used this latter source and compiled a binary using Microsoft Visual Studio 2005 (MSVC8), with a few of my own changes in the zips below :-

Date File Size Notes Digest
26/11/2008 56,334 Runtime 62cbed8a95a5310f2c31d49a462412a4
26/11/2008 14,923 Source 75f3e70e4b57ef48ebfc3e60112dbfc1
Original Sources
2002-04-13 md5.tar.gz 6,170 Aladdin 60f1691ece16bedc12dd2aa949cba606
1995-08-09 md5-c-100.tar.gz 6,299 RSA Data 31d3577c674b27a6e6dab0ebadff7254



File Security - SHA1

For what it is further worth, the US Secure Hash Algorithm 1 (SHA1) for these files is as follows -
SHA1 ( = CE801495D21A4EB2328F79945AE5CB60176BE4FD
SHA1 ( = 5FB93BF09BFBB73E76DC0459F43D0372D42E4D9A
These were generated using the code on this RFC site - ...

See if they can break both, at the same time ;=)


checked by Tidy  Valid XHTML 1.0 Transitional