You are visitor number since 30 April 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 FileAttributes program
Download the latest version of the Compare Drives Using FileAttributes program
Also, see the Compare Drives Using File Content ("Content") program
The Compare Drives Using File Attributes ("Attributes") 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 enumerate the following:
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 the differences between various pairs of logical drives. The process will take anywhere from less than one second to several/many minutes per drive, depending on the speed of the computer, and the number of files on each drive.
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 Attributes-First-Second.txt, where the selected drive letters are used instead of First and Second.
The program also outputs a text file named CompareDrivesAttributesLog.txt. If the file does not exist, the file will be created by the program. If the file exists, the program will append to the end of the file.
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, but expect that the program will work in other Microsoft Windows operating systems. I am aware of only the following restrictions:
There is no installation necessary, just directly run the program by double-clicking on the CompareDrivesUsingFileAttributes.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. |
Clear All | Clears all checkboxes and drive selections. |
Select All | Selects all the checkboxes for which a pair of drives has been selected. |
Update Drive List | If logical drives are added, or removed, while the program is running, you must tell the program to update the drive list. |
Exit | Exit the program. |
Compare Drives | Causes the program to analyze each pair of drives for which a checkbox has been selected. |
The only attributes compared are the file size, creation time, and modification time. If all three attributes are the same for two files, then the Attributes program considers the files to be identical in content.
This is a useful assumption for comparing a logical volume with a very recent backup of the logical volume. However, in the general case, we could have the following:
The Content program may be used to compare drives based on file content.
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 Content program.
However, some volumes mounted from Ghost 10 have not worked, i.e., the program hung up trying to build a list of filenames for 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.