You are visitor number
since 30 June 2006
Go to Howard Kaikow's home page
Copyright © 2006-2007 by Howard Kaikow. All rights reserved.
Date: 16 July 2007
Author: Howard Kaikow <kaikow@standards.com>
Subject: Compare Drives Using File Content program
Download the latest version of the Compare Drives Using File Content program
Also, see the Compare Drives Using File Attributes ("Attributes") program
The Compare Drives Using File Content ("Content") program will create a list of the differences between logical drives. Let us call these the First drive and the Second drive. The program will provide the following information:
Originally, the program was intended to determine which files were included in an incremental/differential backup. This is accomplished by asking a backup program to mount virtual drives that are included in the backup at one point in time, and mounting the corresponding virtual drives from a backup that was done at another point in time.
The program can be used to determine certain differences between various pairs of logical drives. The process will take anywhere from less than one second to many minutes per drive. The choice of buffer size, as well as the fragmentation of the files, and whether anti-virus software is enabled, have a significant impact of the speed of reading the files.
The program outputs a text file for each pair of drives compared. The file will be created in the directory in which you have placed the executable file. The file will be named Bytes-First-Second.txt, where the selected drive letters are used instead of First and Second.
The program was compiled using Microsoft Visual Basic 6 (with SP 6).
In order to run this program, you will need to have the following installed:
Windows 2000, or later.
Either Microsoft Visual Basic 6 or the Microsoft Visual Basic 6 run-time files: If you have neither, then you can download the Visual Basic 6 run-time files by following the instructions in VBRun60.exe Installs Visual Basic 6.0 Run-Time Files.
I developed the program using Microsoft Windows 2000, and intentionally designed the program so that it will not work on operating systems older than Microsoft Windows 2000. I am aware of only the following restrictions:
The choice of buffer size has a significant impact on the speed of reading the files.
The program informs you of how much physical memory is available, and you have the option to specify the buffer size. The buffer size used will be the largest of the following:
Since, you will likely be comparing drives that have very similar content, using a large buffer will greatly enhance performance.
On a system with low available memory, the performance of other applications may be affected if you select a large buffer size. And, if it becomes necessary to use virtual memory, the pagefile will be used and slow performance. Of course, this effect lasts only while the program is running.
There is no installation necessary, just directly run the program by double-clicking on the CompareDrivesUsingFileContent.exe file, or by using a shortcut to that file. When you run the program, a Visual Basic 6 Form will be displayed that looks something like the Form below. The Form was designed using a screen resolution of 1280 x 1024. The Form includes the following controls.
Control | Purpose |
CheckBoxes and SpinControls | Select the drives you wish to have analyzed. |
Update Drive List | If you have added, removed, or changed logical drives while the program is running, you must tell the program to update the drive list. |
Buffer Size(bytes) | Select the number of bytes to be used in each buffer. Choose among the preselected values, or type in a value of your choosing. |
Free buffers | Reduces the buffer size to one byte and frees the previously used buffer space. |
Update Memory Information | Learn how much physical memory is available. This number changes almost continuously while a system is running. |
Exit | Exit the program. |
The program has no device dependencies, and should work with any logical volume. The program has been used with logical volumes on hard drives, flexibile disks, ZIP disks, and optical media (CD-ROM, CD-R, and CD-RW). I do not have DVD drives, but those should work as well.
In order to mount a volume from a backup program, the backup program has to supply a file system filter driver that interfaces with the native file system. Apparently, there are some differences in the way those drivers are implemented for various products. I have mounted virtual volumes using both Acronis True Image 9 and Symantec Ghost 10.
All volumes that I have mounted using Acronis True Image 9 have worked with the Compare Drives Using File Attributes program.
However, some volumes mounted from Ghost 10 have not worked, i.e., the program hung up trying to open/read a file on those volumes. Indeed, in this case, you may have to do a hard reboot.
This makes no sense as the program processes all logical volumes the same way and has no way of distinguishing between actual logical volumes and virtual logical volumes, nor does the program even know, or care, how the volumes were mounted.
The problem occurs in other programs using very simple code.
It is possible that this problem occurs only in Microsoft Windows 2000. I do not use Microsoft Windows XP.