Copyright: Copyright © 1997 Juan M. Aguirregabiria
Citation: Copyright © 1997 Juan M. Aguirregabiria. All rights reserved


Directory Compare

Version 2.30

October 2000


Author
Juan M. Aguirregabiria

E-mail: wtpagagj@lg.ehu.es

WWW: http://tp.lc.ehu.es/jma.html


Copyright

The program, DirCmp.exe, the help files, DirCmp.cnt and DirCmp.hlp and the documentation file, DirCmp.rtf, are copyrighted:

Copyright © Juan M. Aguirregabiria 1997-2000

All rights reserved

This program uses the freeware DelZip package by Chris Vleghert cvleghrt@worldonline.nl, which provides the ZipBuilder component to support Zip files, as well as the ZipDLL.dll and UnzDLL.dll libraries. The package, with full source code, can be obtained from the followings sites:

http://www.geocities.com/SiliconValley/Orchard/8607/

http://members.tripod.lycos.nl/Vleghert/

Since the code in these libraries are based in the free Info-Zip code, you may want to check also Info-Zip's site: http://www.cdrom.com/pub/infozip/

Other brand and product names are trademarks or registered trademarks of their respective holders.

Directory Compare is FreeWare; there is no charge for using it and it may be distributed freely so long as the files are kept together and unaltered. You may neither sell nor profit from distribution of Directory Compare in any way.

Disclaimer

In no event will the Author be liable to users for any damages, including but not limited to any lost profits, lost savings or other incidental or consequential damages arising out of the use or the inability to use this program, even if the Author has been advised of the possibility of such damages, or for any claim by other party.

Hardware and software requirements

Directory Compare runs under Microsoft Windows 95, 98 and NT 4.0.


Acknowledgments

I am deeply indebted to Jeff Wilkinson <jwilkinson@who.net> who has been reporting bugs and suggesting improvements since the first release of the program, when it was only available from my web site. Thanks Jeff!

On the other hand, Daniel Schloemp <schloemp@rocketmail.com> reported a problem with time stamps under NT and helped me fix it.

Gerry Hickman <gerry1@dircon.co.uk> and Scott Dixon <scott.dixon@usa.net> reported some problems and helped me fix them.

Jack Horsfield <jack_horsfield@altavista.net> fixed the grammar and style of the documentation files and improved their overall look. I only hope that the changes I have done since then (due to program changes) are not too bad.

Last but not least, I want to thank Chris Vleghert <cvleghrt@worldonline.nl> for its excellent DelZip package which made possible the support of zip files.


Other free programs by the same author

To get the last version of Directory Compare and of all my free programs contact the Author.


New in this version

New in version 2.30

 Now file patterns may also be excluded in Filter.

 You can specify the Filter in the command line.

New in version 2.24

 Added File/Print.

New in version 2.23

 Fixed bug in the Copying Files dialog box design.

New in version 2.22

 New speed button and short-cut key for Mirror.

 More informative message when a NT user without administrative privileges tries to change the context menu settings in Options/Configure/Miscellaneous.

 Entering a path in a non-existing drive in Source or Target does not produces garbage.

New in version 2.21

 Left and right scrolling did not work.

New in version 2.20

New features:

 A new Options sheet (Color) let you use colors to mark (with user-defined colors) entries with newer Source or Target.

Fixed bugs:

 The HTML help should now run with all library versions supporting it.

 The HTML help does not appear always over the current window.

New in version 2.10

New features:

 A new menu entry (Mirror) and a new command line option (/M) make easier getting exact copies of Source.

New in version 2.00

New features:

 A zip file may be used instead of the Source or the Target directory.

 With the enhanced command line options it may be used in unattended mode for automatic backups.

Fixed bugs:

 Relative paths are now  handled in the right way.

New in version 1.53

New features:

 The ability to allow to run only one copy of the program.

 A (partial) solution for the problem with daylight savings under NT.

 The Ignore differences under setting is only used when Source and Target are under different file systems.

Fixed bugs:

 When comparing files, the update was not always possible.

New in version 1.52

New features:

 All different style bits are reported when comparing files.

 It is possible to control from which directory will start the search for the source or target directory when using the Source and Target buttons.

New in version 1.51

New features:

 Ask the user before launching (comparing) more than one pairs of items from the main list.

New in version 1.50

Fixed bugs:

 Bug in Windows API shell functions when writing to CD-RWs.

New features:

 Optional entries in the context menus of folders to select them as source or target directory.

 Directories may be listed along with files. In that way they can be copied (even if they are empty) or deleted.

 Richer command line syntax.

 Attributes (as well as sizes, time stamps, contents and even file existence) can be ignored when comparing files (useful when the source/target is a CD-ROM).

 Minor changes in menus, tool tips, options. . .

New in version 1.48

Fixed bugs:

 Handling of time stamps.

New features:

 Optional Windows98-style HTML help system.

New in version 1.47

Fixed bugs:

 Handling of Filters containing paths (a legal practice that may have unexpected results).

 Ignore time differences under should now work correctly.

New in version 1.46

Fixed bugs:

 Incorrect directories were created when the source or target was in the form d:\.

 Now only the options in the first sheet of Options are stored in a .dcp file.

New features:

 Now it is possible to erase/eliminate separately the source and target items

 It is possible to instruct the program to forget its current position and dimensions

 Old DOS/Win3+ short file names are now supported

New in version 1.43

New compiler version and some cosmetic changes: AVIs and colorful buttons.

New in version 1.42

Fixed bugs:

 The first time the program was used Scan was not activated until something was typed.

New in version 1.41

Fixed bugs:

 The most-recently-used list now works.

New features:

 The Swap menu entry also swaps labels and the contents of the main list.

New in version 1.40

New features:

 A new option on the File menu allows swapping source and target directories.

 New options on the Edit and shortcut menus to open/view source and/or target files and to send them to an external compare program.

 A new sheet in the Options dialog allows selecting the meaning of a double click on an item in the main list.

 A new option on the Options dialog allows comparing files exclusively by their name.

New in version 1.32

Corrected bugs:

 A stupid message issued when a .dcp file was directly open has been removed.

New features:

 A new entry in the Options dialog allows ignoring small differences between time stamps that are generated by the different precision NT and Win95/98 use to save them.

 A single click on the right spot of the About dialog is enough to e-mail me or browse my home page.

New in version 1.31

Corrected bugs:

 It tried to delete some no existing Target files when using Delete or Eliminate.

 The Synchronize operations did not updated the Target if Source had been updated.

New in version 1.30

Corrected bugs:

 It was possible to select commands while the main list was being built.

New features:

 The main list will optionally display the icons corresponding to each item. It is also possible to disable continuous updating of its contents.

 The Filter may contain several file masks separated by ;

New in version 1.20

New features:

 New Options menu and dialog.

 The sorting order by the ? field is now user configurable in the new Options dialog box.

 Files with the same time stamps but different sizes or attributes can be optionally considered as newer source files.

 Errors comparing file contents are now more explicit and the possibility to update the target is now offered. It is also possible to invoke an external program to compare in more detail the files.

New in version 1.10

Corrected bugs:

 Correct handling of blank string in combo boxes.

 The Filter specification history is now correctly handled.

New features:

 The relative path of files is shown in a separate field.

 One can reorder the items by clicking columns headers.

 More information is saved from session to session, including main window position and dimension, the width of columns in the list of files and their sort mode.

New in version 1.01

Corrected bugs:

 The keyboard short-cut to delete items has been changed form Del to Ctrl+D to avoid inadvertently deleting files when editing the target, filter or source specifications. Other short-cuts have also been changed.

New features:

 The main window is now resizable.


Introduction

Directory Compare is a utility to help you keeping copies of your important directories (documents, programs under development and so on) in a backup hard disk or any other storage system (like 100Mb diskettes). The copy may be optionally saved in a zip file and can be made (semi)automatically or in an interactive way.

I always have two or more copies of my important documents and I refresh them very often. I prefer to save exact copies of my working directories (rather than using some backup program), because it is faster and makes easier to open the old copy to recover some element or part that was better in the previous version. To make this process easier I wrote, many years ago, the first version of the program cpy which is included with my Console Utilities. cpy is a command line program, which makes it very convenient to use from a desktop shortcut that after a single click copies to my backup hard disk all modified elements in my working directories. Users who do not want to remember command lines options may use Cmd Line Shell to have a more user-friendly interface.

Directory Compare is a kind or GUI version of cpy: it has far less options but its visual interface makes it easier to do selective copies. For instance, modern compilers generate an incredible amount of auxiliary data, which speeds up compilation, but takes a lot of storage space.  (For instance, the source files of Directory Compare are less than100 Kb, but the auxiliary files generated by the compiler occupy 7,500 Kb!) Usually you do not want such files in your backup disk: they are very large and can be easily recreated by running the compiler.

cpy may be instructed to ask you for confirmation before copying each file, but this is a boring and error prone process. My strategy is to use cpy to copy everything during program development and then, when I release the software, I delete auxiliary files from my main and backup disks. To improve this approach I wrote Directory Compare: it shows you, side by side, the source and backup directories so that you can easily select the files to by copied (from the source to the target or in both directories) and even delete from both directories auxiliary files.


Installing Directory Compare

To install the program run the distribution file and follow the instructions. It will copy to the directory you select the executable file, DirCmp.exe, the help files, DirCmp.cnt, DirCmp.hlp and DirCmp.chm, and the documentation file, DirCmp.rtf. It will also copy, if necessary, the support files ZipDLL.dll and UnzDLL.dll to your system directory (usually c:\windows\system, c:\winnt\system32 or c:\winntsrv\system32).

You may want to check the Options dialog box that opens from the Options/Configure menu.


Uninstalling Directory Compare

To uninstall Directory Compare,

1. Use Add or remove programs from the Control panel.

2. If necessary, remove any remaining files in the installation directory (DirCmp.gid and DirCmp.fst, if you have used the help system), as well as any .cpd files you might have created.

3. Advanced users may want to remove the registry key software/Juan M. Aguirregabiria/DirCmp corresponding to each user in HKEY_USERS.


Running Directory Compare

You can run Directory Compare as a normal program, from any of the following:

•	The Start menu

•	A shortcut on the desktop

•	A folder

•	Execute dialog box

•	A DOS window (see Command Line Options).

You can also double-click any file containing saved settings (a .dcp file), which starts Directory Compare and loads the settings.

Once Directory Compare starts:

1.	Select the source directory (or zip file) by doing one of the following:

•	Click Source and then select the appropriate directory (or zip file).

•	Enter the directory (or zip file) path in the edit box under the Source button.

•	Clicking the down arrow at the end of the edit box and select the path from the list.

1.	Select the source file mask (or masks separated by ;) under Filter (the default *.* will use all files in the selected directories or zip file; patterns after / will be excluded: see File Patterns in Filter),

2.	Select the target (backup) directory (or zip file) by doing one of the following:

•	Click Target and then select the appropriate directory (or zip file).

•	Enter the directory (or zip file) path in the edit box under the Target button.

•	Clicking the down arrow at the end of the edit box and select the path from the list. (if only the source or the target support long file names, make sure you select the Configure/Short names menu).

1.	Select the items you want included in the list:

•	Subdirectories if you want to scan also directories under the selected ones,

•	Newer source files to list files that are older or missing in Target,

•	Newer target files to list files that are older or missing in Source,

•	Equal files to list files that have the same time stamp in Source and Target,

1.	Press Scan to make Directory Compare search both directories and compare the time stamps of files. The results are displayed in a list which shows in each line the file name, and the size and date of the copies existing in both directories. Data corresponding to Source and Target is separated by one of the following:

Character	Meaning
>	the source file is newer than the target file or the latter is missing,
<	the source file is missing or older than the target
?	both files have the same time stamps but different sizes (they will be treated as the > files if the Sizes are different option in the Options dialog is selected),
-	both files have the same time stamps and sizes but different attributes (they will be treated as the > files if the Attributes are different option in the Options dialog is selected)
!	files are different but have the same name and the Ignore everything… option is selected.
#	for one FAT file and one NTFS file differing just by one hour. See FAT vs. NTFS.
=	both files have the same time stamp, sizes and attributes (although not very probable, they could have some different bits: use the Compare function to check this).
The different files will appear selected and the status line will inform you on the number of files that are newer in each directory, as well as the equal files and the number of selected files (initially, those with different time stamps)

1.	Now, you can select or deselect files as usual (remember holding down the Ctrl key if you want to keep other selections when changing the status of a single line) and use the Edit menu, the shortcut menu that you get when using the right mouse button or, in some cases, the equivalent keyboard shortcuts to update and compare files in both directories as well as to perform other tasks on them: erasing, opening, viewing, using an external compare program. The usual way of arranging the order of entries by clicking on column headers works as expected.

Since you may have different sets of working directories (say, your documents and your programs) you may find yourself repeatedly using the same sets of directories, filter and options. The history lists under Source and Target will help you, and Directory Compare always starts with the settings you used the last time. Furthermore, by using the File menu you can save the settings in a  .dcp file and then use them again later. You can then recover the settings in the file, or by simply clicking on the file icon (you may also define a shortcut to this icon in any convenient location, such as your desktop). In that case the program will start with the corresponding settings and an automatic Scan will by performed on start-up.

See also Automatic Backups and Command Line Options.


File Patterns in Filter

Patterns are used in the Filter edit box to select the files you want included and/or excluded when comparing directories. A pattern is one or more file masks separated by semicolons or a slash.

A mask is a file name optionally followed by an extension (paths are not allowed, so you cannot include \) which may contain any number of copies (including none) of the following wildcars:

? will match any character, but there must be exactly one character.

* will match any sequence of characters, including the void one.

So, choice?.* will match choices.doc and choice1.dat, but not choice.doc. On the other hand, choice*.* will match the previously mentioned three files, as well as, choices are good.rtf. Of course, *.* will match any file.

If no extension is provided, .* will be assumed: so * also will match any file. But, a single dot indicates a void extension, so *. will match any file without extension.

Spaces at the beginning and the end of a mask will be removed, but you can avoid it be putting the mask inside a pair of double quotes, which will be removed. So, to match *help.me , with a trailing space, you have to enter "*help.me ".

A pattern is a single mask or a sequence of masks separated by semicolons. For instance, to match all documents you could use something like *.doc;*.txt;*.rtf.

If the pattern includes a slash, any file matched by the masks after it will be excluded. So, to match all documents except the ones containing the letter w, you can use *.doc;*.txt;*.rtf/*w*.

If the pattern starts with a slash, a default *.* is added in front of it, i.e., all files will be included except the ones matched by the mask(s) after the slash. For example, to match all files except the backup files produced by some editors, you might want to use /*.bak. To exclude temporary files you may try /*.tmp;*.*~*.


Automatic Backups

Directory Compare if often used in a friendly interactive way, but it can be also a tool for automatic backups to be started

by clicking in a shortcut in your desktop,

•	using a menu,

•	when the Windows session starts (by putting a shortcut in the StartUp submenu),

•	when the Windows session ends (by means of programs like my own Folders: see Other programs by the same author),

•	by means of the at command under NT,

•	as a programmed task under Windows 98,

•	etc.

In all cases you will have to enter a command line with the program file specification and some options. The easiest way is as follows:

•	Prepare in the usual interactive way the kind of copy you want to repeat later once and again (including the desired Source and Target, as well as all the remaining options).

•	Check that the settings work as expected.

•	Save the settings to a .dcp file.Say its file specification is c:\backups\saveprog.dcp.

•	Select the way to start the automatic task an enter the appropriate command line. For instance,
"c:\Program Files\Directory Compare\DirCmp.exe" c:\backups\saveprog.dcp /u /q


Command Line Options

Directory Compare may be run with optional items in the command line:

Options	Meaning
dcp_file_name	Read the settings in the .dcp file called dcp_file_name
/s directory_or_zip_file_name	Use directory_or_zip_file_name as Source
/t directory_or_zip_file_name	Use directory_or_zip_file_name as Target
/f pattern	Use pattern as Filter (see File patterns in Filter). If this is not included, *.* is assumed.
/u	Update all newer files in Source
/y	Update all newer files in Source and Target
/m	Make Target a mirror (exact copy except for newer items in Target)  of Source
/q	Quit after performing other actions in command line

(/S, /T, /F, /U, /Y, /M and /Q are also OK.)

If directory_or_zip_file_name or pattern contain spaces, you must enclose them between double quotes. If pattern already contains double quotes they have to be preceeded by \ (see below).

Examples (of course, you may need to include the program path explicitly):

Command line	Meaning
dircmp name.dcp	Read the settings in the .dcp file and automatically start a Scan.
dircmp name.dcp /u	Read the settings in the .dcp file, automatically start a Scan,.
dircmp name.dcp /u /q	Read the settings in the .dcp file, automatically start a Scan, update all newer files in Source, and then quit.
dircmp /s "dir 1"	Use dir 1 as Source. (Notice the space.)
dircmp /t dir /f "\" a*\"/*.bak"	Use dir as Target and " a*"/*.bak as Filter.
dircmp /s dir1 /t dir2	Use dir1 as Source, dir2 as Target, and automatically start a Scan.
dircmp /s dir1 /t dir2 /u	Use dir1 as Source, dir2 as Target, automatically start a Scan and update all newer files in Source.
dircmp /s dir1 /t dir2 /u /q	Use dir1 as Source, dir2 as Target, automatically start a Scan, update all newer files in Source, then quit.
dircmp /s dir1 /t dir2 /y	Use dir1 as Source, dir2 as Target, automatically start a Scan and update all newer files in Source and Target.
dircmp /s dir1 /t dir2 /m /q	Use dir1 as Source, dir2 as Target, automatically start a Scan, update all newer files in Source, erase from Target items missing in Source, then quit.

You can get automatic backups in unattended mode by using a command lines in the form

dircmp /s dir1 /t dir2 /y /q

or, if extra items in Target must be deleted,

dircmp /s dir1 /t dir2 /m /q

in a shortcut in the desktop, or in a batch file (that, for instance, will be executed automatically from the startup menu, or by means of the at command under NT, or as a programmed task under Windows 98).


Main Menu

Entry	Meaning
File	Open the File Menu to manage .dcp files
Edit	Open the Edit Menu to update and compare files in both directories
Options	Open the Options Menu to view and edit options
Help	Open the Help Menu


File Menu

Use the options on the File Menu to save the current settings to a .dcp file and to restore settings that you have previously saved.

Entry	Key	Button	Meaning
Open			Load previously saved settings
Save			Save the current settings. These are saved in a file with a .dcp file extension
Save as			Save to the disk the current settings under a new name
Swap	Ctrl+W		Swap Source and Target directories
Print	Ctrl+P		Print contents of main list
Exit			Quit from Directory Compare
. . .			List of most recently-saved settings files


Edit Menu
Edit Menu (shortcut menu)

This menu is both an entry of the Main Menu and the shortcut menu which opens when you use the right mouse button. t enables you to carry out the main file maintenance operations:

Entry	Key	Button	Meaning
Scan	Ctrl+S	Scan	Scan Target and Source and compare item stamps.
Update selected	Ctrl+U		Copy, to Target, the selected files that have a more recent date in Source. Files with the same time stamps but different size/attributes will also be updated if the Sizes are different/Attributes are different option in the Options dialog dialog is selected.
Synchronize selected	Ctrl+Y		Copy, to each of the Target and Source directories, the selected files that have a more recent date in the other folder.
Compare selected	Ctrl+C		Compare the entire contents of those selected files that have the same time stamp in both directories. Only errors are displayed  by means of an Error dialog box.  No news is good news! For the same reason, when the source and target files have different attributes, those that are different are reported.
Update all			Copy to Target all files that have a more recent date in Source. Files with the same time stamps but different sizes/attributes will also be updated if the Sizes are different/Attributes are different option in the Options dialog dialog is selected.
Synchronize all			Copy to each of the Target and Source directories all the files that have a more recent date in the other folder.
Compare all			Compare the entire contents of all the files that have the same time stamp in both directories. Only errors are displayed  by means of an Error dialog box dialog will open.  No news is good news! For the same reason, when the source and target files have different attributes, those that are different are reported.
Mirror	Ctrl+I		Like Update all, but items missing from Source will be eliminated from Target. Useful to make sure that the target directory is completely equal to the source and does not contain files that are no longer present in the source. However, it does nothing about files that are newer in target.
Select different	Ctrl+F		Select all files with different time stamps or that do not appear in both directories.
Select all	Ctrl+A		Select of items in the list.
Delete from source and target	Ctrl+D		Send the selected files from both directories to the Recycle Bin (if available). (But see zip files.)
Delete from source			Send the selected files from the source directory to the Recycle Bin (if available). (But see zip files.)
Delete from target			Send the selected files from the target directory to the Recycle Bin (if available).
Eliminate from source and target			Remove the selected files from both directories. The files do not go to the Recycle Bin.
Eliminate from source			Remove the selected files from the Source directory. The files do not go to the Recycle Bin.
Eliminate from target			Remove the selected files from the Target directory. The files do not go to the Recycle Bin.
Open both source and target	Ctrl+B		Launch/View the selected source and target file(s). (See Options dialog box). (But see zip files.)
Open source file(s)	Ctrl+L		Launch/View the selected source file(s). (But see zip files.)
Open target file(s)	Ctrl+R		Launch/View the selected source file(s). (But see zip files.)
Send to another folder source file(s)			Copy the selected source file(s) to any directory.
Send to another folder target file(s)			Copy the selected target file(s) to any directory.
External compare	Ctrl+X		Send source and target files to the external (compare) program specified in the Options dialog box. (But see zip files.)


Options Menu

In this entry of the Main Menu you find

Entry	Key	Meaning
Configure		Open the Options dialog box to view and edit preferences
Short file names	Ctrl+H	Use old DOS file names: 8+3 characters. (But see zip files.)
Forget position and size		Do not  use the current position and dimensions the next time the program starts


Help Menu

In this entry of the Main Menu you may find

Entry	Meaning
Contents	Contents of the help system
Search for Help On	Search for keywords in the help system
How to Use Help	Using the help system
About	The ego box


Options dialog box

This configuration dialog opens when using the Configure entryon the Options menu and lets you see and change some program preferences. The following options may be edited from its pages:

Entry	Meaning
Sizes are different	Treat as newer those source files that have the same time stamps but different sizes (? files).
Attributes are different	Treat as newer those source files that have the same time stamps but different attributes (- files).
Copy only attributes	Do not copy files when only the attributes are the same. Instead, copy just the attributes.
Ignore time differences under	Time stamps are stored with very high precision under NTFS, but are rounded to the nearest multiple of 2 seconds when saved to a FAT volume or a zip file. If you keep the source and target files on volumes with different file systems, even after and Update  the next Scan might report that files are different because they have (slightly) different time stamps. To avoid this problem, you have to set this option to a value of 2 seconds. See FAT vs. NTFS for details.
Ignore differences of one hour when comparing FAT and NTFS volumes	Daylight savings are dealt in different ways under NT and Win 9x. If you keep the original files under NT and their copies in a Windows 95/98 system, and the daylight savings changes is made automatically by the system, you should check this options. See FAT vs. NTFS for details.
Ignore everything except file name and extension	Compare only names and extensions. This may be useful in some very special cases and was added because some users asked for it.
External compare program	Use this if you want to specify an external program to use when performing a detailed comparison of files. For example, you could use FileComp in my own Console utilities.  The external program will be called when using Details in an Error dialog box which displays an error while comparing file contents.  The source and target full file specifications (or the equivalent Windows 3.1-DOS 6 short names) can be specified by means of the %s and %t (%S and %T) escape sequences. To insert a true percent sign (%) enter %%. Remember that often you have to use double quotes around long path names. Cannot be used with zip files.
Show command line before executing it	Select this to make Directory Compare show you the command line it is about to use when it needs to perform a detailed comparison of files. You have the opportunity to modify the command line at that time.
Main list	Specify the relative order to sort the symbols > < ? - ! = when listing files.
Display icons	Show the icon corresponding to each item as in Explorer or My Computer (it will slow down the display of the main list). It is advisable to select Do not update while generating list to avoid annoying flicker. (But see zip files.)
Do not update while generating list	The contents of the main list will be displayed only when it has been completely generated to avoid continuous update, which is specially annoying when icons are to be displayed.
List, Copy and Delete directories	Treat directories as normal files and display them in the main list, so that they can be copied (even if they are empty) and deleted. Ignored with zip files.
Automatically update main list after files are copied or deleted	The main list is automatically refreshed each time a file (or a group of files) is deleted or a synchronization is performed. If you find this annoying, deselect this option: the main list will be updated only when you explicitly ask for it by means of Scan.
Use colors in main list	If this options is selected (user-defined) colors will be used in the main list (instead of an standard list view) to mark different types of entries (entries with newer Source, newer Target and so on). Changing this option will be taken into account only when a new session of Directory Compare starts.
Choose a line type	Select here a line type and then Text color or Background color to customize colors used when the previous option is selected.
When you double click on an item from the main list	Select from the list below the action to be performed when you double click on an item in the main file list. Ignored with zip files.
Execute associated program	Using any Open command form the Edit menu or the shortcut menu starts the associated program to edit the file.
Quick view the file	Using any Open command starts the associated quick view filter to view the file.
Compression level	Select here the compression level (from 0 = no compression to 9 = maximum) to be used in zip files.
Temporary directory	The temporary directory used for backup (see below) and temporary files.
Backup zip file. . .	Canceling the adding (deleting) of an item to (from) a zip file may result in a corrupted zip file. Check this option to instruct the program to make a backup that allows recovering the original file after the Cancel command has been executed. This needs variable amounts of time and disk space (depending on the zip file size), but is safer.
Try compressing special files. . .	Usually compressing already compressed files (such as those with extension .gif, .png, .Z, .zip, .zoo, .arc, .lzh, .arj, .taz, .tgz or .lha is a waste of time because very few space, if any, is gained. So, to speed up the compression operation you may deselect this option.
If necessary, unzip file to get its icon	If you have selected the Display icons option (see above) and the only copy of an item is in a zip file, to speed up the list the item will not be extracted to get its icon ( [image] will be displayed instead) unless this option is selected.
Use HTML help	Use the new HTML help system (if not available on your computer, the standard help system will be used instead).
Source. . .in context. . .	Add the "Source for Directory Compare" entry on the context menu for folders and zip files. Selecting it, Directory Compare will start  with that folder or zip file as Source. Under NT you need administrative privileges to change this setting; otherwise, a message suggesting you ask the system administrator to set this for you will be issued.
Target. . .in context. . .	Add the "Target for Directory Compare" entry on the context menu for folders and zip files. Selecting it, Directory Compare will start  with that folder or zip file as Target. Under NT you need administrative privileges to change this setting; otherwise, a message suggesting you ask the system administrator to set this for you will be issued.
Ask the user before deleting files if they are at least	Before starting to delete or eliminate files, Directory Compare will issue a warning if the number of files is at least the value selected here. Use 0 to get no warning at all.
Ask before deleting directories	If this options is selected, Directory Compare will issue a warning before starting to delete or eliminate directories.
Start browsing folders from current directory	When using the Source and Target buttons the dialog box to search for the directory will open from the current directory. (If this is not selected it will start from My PC.)
Start browsing Target from current Source	When using the Target button the dialog box to search for the directory will open from the current Source. If this is not selected it will start from the current Target, but if the previous entry is not selected, My PC will be the starting point.
Allow only one instance of the program	If this option is selected and you try to launch it when another copy is already running, the latter will be brought to the foreground and no new copy will start.


Error dialog box

If two files are different after using the Compare selected or Compare all options in the Edit Menu, this dialog opens. The caption shows the error type, as well as the source and target files and some details on the difference between files. The following options are available:

Entry	Meaning
OK	Ignore the error and continue with the next file to be compared
Cancel	Ignore the error and stop the comparison process
Update	Copy the source to the target
Details	Run the external program, as defined in the Options dialog box, to perform a detailed comparison of file contents when they are different. Does work with zip files.
Ignore all	Ignore this kind of difference (attributes, sizes, time stamps, contents and even file existence) with the remaining files (useful if the source or target is a CD-ROM).


Saving your settings (.dcp files)

Since you may have different sets of working directories, perhaps for different projects that you are working on, you may find yourself frequently using different sets of directories, filter, and options. The history lists under Source and Target will help you, and Directory Compare will start always with the settings you used the last time.

Also, by using the File menu, you can save the current settings and then use them again later when needed. You save the settings in a file with a .dcp extension, which stores a set of directories and the options visible in the main window and in the first sheet of the Options dialog. You can then recover the settings by doing either of the following:

•	Open the file from within Directory Compare.

•	Click the file icon (you may also define a shortcut to this icon in any convenient location, such as your desktop). In this case the program loads the settings and performs an automatic Scan on start-up. You may the use the Edit menu, the shortcut menu that displays when using the right mouse button or, in some case, the equivalent keyboard shortcuts to update and compare files in both directories.


FAT vs. NTFS

Currently Windows computers use two different file systems: FAT (I am including here the enhanced FAT32 used in most Windows 98 systems and many Windows 95 computers) which is supported by Windows 95/98 and NT, and NTFS which is directly understood only by NT. Notice that each volume (say each physical or logical disk) has its own file system and even if you are running under Windows 9x you may be using a NTFS volume through a network and, on the other hand, you may have in your NT workstation floppies, Zip and Jazz drives, for instance, use FAT (not to speak of some networked drives, or even a local hard disk formatted under FAT for some reason). Apparently all with zip files use the FAT conventions.

The trouble is that FAT and NTFS save time stamps with different precision and deal in very different ways with daylight savings.

Time stamps are stored with very high precision under NTFS, but are rounded to the nearest multiple of 2 seconds when saved to a FAT volume. If you keep the source and target files on volumes with different file systems, even after and Update, the next Scan might report that files are different because they have slightly different time stamps.

To avoid this problem, if you keep original files and copies under different file systems, you should set the Ignore time differences under option in the Options dialog box  to a value of 2 seconds. This value will be used only when comparing files under different file systems.

As for the daylight savings problem, this is Microsoft's official opinion (Article ID: Q129574):

When Windows NT automatically adjusts for daylight savings time, the times on files on Windows NT file system (NTFS) partitions and the events in the event logs are retroactively shifted by one hour, even though the files and event records were created before the daylight savings time change.

NOTE: To configure Windows NT to automatically adjust for daylight savings time, run Control Panel, choose Date/Time, and select "Automatically Adjust for Daylight Saving Time."

This behavior occurs because of the way that Windows NT stores time information. All times displayed in Windows NT for event log events and files on NTFS partitions are computed as offsets to Greenwich Mean Time (GMT). When you set the time on your system, you are setting the value for GMT. When you select your local time zone for the system, the appropriate number of hours are added or subtracted to the stored GMT value. This adjusted time is displayed. When "Automatically Adjust for Daylight Saving Time" is selected, an additional hour is added to GMT during daylight savings time (the first Sunday in April through the last Sunday in October).

If you are viewing another machine remotely across one or more time zones through Event Viewer, the times for events on the remote system appear relative to your local time. In other words, if you are viewing an event remotely that actually occurred at 8:00 PM Central Daylight Time, the time displayed for the event on your computer will be 6:00 PM when you view the event from the Pacific Daylight Time zone.

When Windows95 or Windows NT clients access network resources they are passed the GMT time of the file stored on the NTFS partition. When the client receives the time stamp in GMT they then adjust the time stamp (+) plus or (-) minus the time zone they are set for.

In the case of WINDOWS NT - it also adjusts for daylight savings time and displays the file's time stamp for the correct local time including Daylight Savings Time setting.

In the case of WINDOWS95 - The time returned by the file system is not adjusted for Daylight Savings Time. This feature is by design, and was implemented to work with servers such as NetWare that do not support the Daylight Savings time APIs and time functions in Windows 95. In this case the files will display off by one hour. this is BY DESIGN for WINDOWS95 clients.

In my opinion, the summary is that Windows 95 is flawed by design and Windows NT has a buggy implementation (because the one hour shift is made based on the current time and not on the time being adjusted).

It is not surprising that comparing files saved under file systems with different bugs is not an easy task.

In my opinion the best way to deal with this problem is to disable the "Automatically Adjust for Daylight Saving Time" option in Control Panel/Date/Time in your NT computers. After all, changing the time twice in a year is not that difficult, and it may be automatically done if you use one of the many free programs that set you system clock by reading the time from Internet by using SNTP or another protocol.

I have not been able to devise a full fix for this problem for users that, for some reason, want the "Automatically Adjust for Daylight Saving Time" option selected. To fix it, the program would need to know if the one hour shift was included in the file stamp of the copy, and to do this it should know if the daylight savings were active when the last copy from one file system to the other was made. But how could the program do that? Win32 saves three time stamps for each file, but none can be used to know when the file was synchronized: the creation time tells us nothing about further copies, the last access time may be due to a read operation and the last modification time is automatically (and correctly) reset to that of the original file by most copy routines, including the shell functions used by Directory Compare.

However, I have implemented a partial cure for the problem: if the Ignore differences of 1 hour when comparing FAT and NTFS volumes is selected, the program will flag as (nearly) equal two files under different file systems if their time stamps differ by just one hour (plus or minus the number of seconds, usually 2, in Ignore time differences under). To make clear that it is not completely sure that their time stamps are essentially equal (after all, there is a very small probability that one file was modified, without changing its length and attributes, exactly one hour after the last change in the other) instead of the = sign a # will be used in this case. Unfortunately this is not a perfect solution, because it is of no help for files whose true last modification times differ by less than one hour: due to the one hour shift of daylight savings, the program might decide that the more recent file is older than the other; but as explained above there is no way (to the best of my knowledge) for the program to know  which is really older.


Zip files

Starting with version 2.00, either the Source or the Target directory (but not both) may be replaced as storage location by a compressed file. Directory Compare uses the popular zip format for compressed files: they are useful to save space, but adding and deleting files (as opposed to extracting files) takes time, especially if an high Compression level (see Options) is used.

Since the main goal of Directory Compare is to compare and synchronize directories, not zip files, and the latter are not directories, they suffer some restrictions (apart from being slower when adding and deleting files):

1.	At least one of Source and Target must be a true directory. You cannot use Directory Compare to compare and synchronize zip files directly. (Of course, you can use it to extract one of the zip files to a temporary directory and then compare and synchronize this directory first with the second zip file and then, if any update has been made to the temporary directory, with the original zip file.)

2.	Some options apply only to zip files and are listed in a separate sheet in the Options dialog box.

3.	Items deleted from zip files are not sent to the recycle bin, so the Delete. . . and Eliminate. . . menus are equivalent when applied to zipped items.

4.	Since zipped items are not independent files, they cannot be executed or viewed with the Open. . . menus or double clicking on them with the right values on the Options dialog box. For the same reason, you cannot compare a zipped item with a file with the External Compare program. Of course, the program could extract the item to a temporary location and execute it or launch the external program with its file specification; but who would the temporary file when it is no longer necessary?

5.	By default, when the Display icons option is selected, an item that exists only in a zip file (and not in a directory) will be assigned the  icon. However, if you are ready to pay the time penalty, you may select the If necessary unzip file to get its icon option and the program will try harder to get the right icon.

6.	Since apparently empty directories cannot be stored in zip files, the List, Copy and Delete directories option is ignored if either the Target or the Source is a zip file, and directories will not get separate entries in the main list.

7.	If Short file names is selected files will be stored in a zip file with its short name, but already stored files will be listed with the name they have in the zip file, because there is no reliable way to predict the short name Windows will assign to them when extracted to a disk.

8.	Aborting the adding or removing of items in a zip file (which is sometimes necessary if a very long zip operation has been inadvertently started) may lead to a corrupted zip file. So, for security, you may want to select the Backup zip file. . . option to make sure that, at least, you do not lose the original zip file. This is another reason to make sure that you select your Temporary directory in your bigger and faster disk.

9.	The code to manage zip files may issue error messages not available with files in directories.


Suggestions, bugs and help

The Author would highly appreciate receiving information about any bug or problem found in the program. Suggestions to improve Directory Compare in future versions are also welcome.

There is a known bug in this version: the compiler I am using does not support files over 2 Gb (yes, the limit is 2,000 Mb = 2,000,000 Kb). I could overcome the 2 Gb limit by using direct API calls and some additional code, but I have not implemented this because I do not think such large files are usual (still?).