VerifyFiles - Read Me
Topics
This is the VerifyFiles Read Me.
Please choose one of the following topics:
Introduction
VerifyFiles is a command line utility to verify the integrity of files and folders.

To start using VerifyFiles you will have to create an XML file, that VerifyFiles will use to check the integrity of a given folder and its sub folders. The XML file contains all files that are required to be inside the given folder and additionally some integrity information as an MD5 checksum and/or version information (DLL & EXE files).

VerifyFiles will utilize all CPUs found in the machine it's running on to verify / enumerate files in a given folder. This speeds up things enormously. (Factor 10 on a i7 4 core machine with Hyper Threading.)

If the verification fails, VerifyFiles will return an error code of 1. If the validation succeeds, VerifyFiles will return the error code 0.

The XML file can be created manually or by using the VerifyFiles command line switch -create.

For example: VerifyFiles.exe -create -file C:\VerifyFile.xml -path "C:\Source Folder" will create a verify XML (C:\VerifyFile.xml) that contains integrity information for all files and folders contained in C:\Source Folder.

If you open the VerifyFile.xml in your favorite text editor, like Notepad++, you will see the following structure:

<?xml version="1.0"?>
<!--Verify file for source directory C:\SourceFolder\-->
<VerifyFile>
<Directory Root="1">
<Directory Name="Software" Root="0">
<Directory Name="Sub Folder 1" Root="0">
<Directory Name="Sub Folder 2" Root="0" Optional="1">
<File Name="summer_holiday.zip" Checksum="48c5a450e4f93a2a776d3c9fd8ccf383" />
<File Name="putty.exe" Checksum="9bb6826905965c13be1c84cc0ff83f42" Version="Release 0.60" />
</Directory>
<File Name="7z920-x64.msi" Checksum="cac92727c33bec0a79965c61bbb1c82f" />
<File Name="Core-Temp-setup.exe" />
</Directory>
<Directory Name="Folder 2" Root="0">
<File Name="FRITZ!VPN64_German.exe" Checksum="b3a54c3154fe842ae3526443ba3e9012" Version="1.2.3" />
<File Name="ganttproject-2.0.10.exe" Checksum="656680b5b53ac8cb9a26608898736613" />
</Directory>
<File Name="FileZilla_3.3.4.1_win32-setup.exe" Checksum="6de62083531933c79754ce9de143048b" />
<File Name="Firefox Setup 3.6.12.exe" Checksum="c449fb6fbf42c053a818ed198eb62e9c" Version="4.42" />
<File Name="iview427_setup.exe" Checksum="b2f4f43f8fb8110c82a60e3793922912" Version="4.27" />
</Directory>
<File Name="vidalia-bundle-0.2.1.29-0.2.10.exe" Checksum="32cc68af7cd8f3824f918f0703b335ee" Version="0.2.1.29-0.2.10" />
<File Name="wcg_boinc_6.10.58_windows_intelx86.exe" Checksum="c12b490e917b500b1c664d7c43acdc35" Version="6.10.58" />
</Directory>
</VerifyFile>

Where possible VerifyFiles will extract as many information as possible (MD5 Checksum, Version Information, Creation Time, Change Time, Attributes). Only the checksum and version tags are used when verifying files. You can delete the checksum and version attributes, to save time. If you do so, VerifyFiles will only check if the file exists.

You can manually add more attributes to file tags:
You can manually add more attributes to directory tags:
See the verify.example.xml for more information.
Command Line Switches
Switch Usage
-file [parameter] Specifies the file to create / use.
-path [parameter] Specifies the folder to enumerate / check.
-create Creates a new XML -file from the given -path.
-nomd5 Disables MD5 creation / check.
-nosubfolders Disables recursion into sub folders.
System Requirements
VerifyFiles is written in C# and requires the .NET Runtime Framework (2.0 or newer) for Windows or the MONO Runtime Framework for GNU/Linux and MacOS X.


Tested Operating Systems:
Change Log
Version 1.0.1: Version 1.0.0:



VerifyFiles is © 2011 by Marko Oette. See www.oette.info for more information.