I transfer many files over FTP but the latter does not check for file integrity after transfer. I'm looking for a program that can:

  • check that 2 folders located on two different computers are identical (I'm OK if I need to run the program on each computer to get some checksum to compare)
  • work on Windows 7

And if possible (descending priority):

  • easy to use
  • with GUI
  • free
  • give the list of modified/missing files

And ideally:

  • can also be used as an FTP client and run the integrity check right after the transfer.

I'd like to avoid rsync as I don't need any synchronization, just transferring once.

5 Answers 5


Maybe a little late, but hope it's still useful.

I use HashCheck for this: free, open-source, licensed under a BSD-style license, and written in C. It works on Windows 7, both x86 and x64.

It's implemented as an Explorer shell extension. It adds a Checksum tab to the properties dialog of files and folders which shows the checksums of each selected file, and lets you save those into a file (supports .sfv, .md4, .md5 and .sha1).

Veryfication is done by just double-clicking the resulting files. It opens a window with all files listed, marking those passing verification, missing/unreadable, or failed/modified.

It lacks FTP client part still. You can however create checksums on origin computer, upload files together with the checksum file, and verify on destination computer, not 100% automatic but not bad in my opinion.

enter image description here

enter image description here

enter image description here

enter image description here


I suggest you cfv.

It runs on Windows too ("works on linux, freebsd, openbsd, netbsd, solaris, macosx, and windows.").

  • easy to use

It's a command line tool, cfv -C -t sha1 -rr will generate you a <current directory name>.sha1 checksum file (recursive) that you can check with cfv -T -f my.sha1.

  • with GUI

It's a command line tool without GUI.

  • free

It's free (GNU General Public License).

  • give the list of modified/missing files

It shows the modified and missing files by default. For unchecked (added) files use the -u flag.

To install on Ubuntu: sudo apt-get install -y cfv


You can use Beyond Compare:

  • Windows
  • non-free
  • GUI

You can compare entire drives and folders at high speed, checking just sizes and modified times.  Or, thoroughly verify every file with byte-by-byte comparisons.  FTP sites, cloud storage, and zip files are integrated seamlessly, and powerful filters allow you to limit what you see to only what you're interested in.

enter image description here


Why not use MultiPAR (https://multipar.eu/) on one directory then transfer the first piece of the verification set over to the second directory, and test it. If errors you can transfer more chunks and actually re-generate the correct files (i.e. fix the second set).

  1. You need to run it once on source and once to check on destination.
  2. Works on Windows 7? Yes
  3. Easy to use? Yes
  4. With GUI? Yes
  5. Free? Yes
  6. Gives list of missing/erroneous files? Yes
  7. Run automatically after transfer? You can trigger it with batch files, so if you can trigger a batch file after transfer, and do so on both machines, then the answer is "yes".

You can use md5deep.

From their website:

The programs are distributed as binaries for Microsoft Windows (7, Vista, XP, 2003, and 2000 are supported) and as source code. The source code should compile nicely on just about any platform, including Cygwin, Linux, FreeBSD, OpenBSD, Mac OS X, OpenSolaris, HP/UX, etc.

md5deep is a set of programs to compute MD5, SHA-1, SHA-256, Tiger, or Whirlpool message digests on an arbitrary number of files. md5deep is similar to the md5sum program found in the GNU Coreutils package, but has the following additional features:

  • Recursive operation - md5deep is able to recursive examine an entire directory tree. That is, compute the MD5 for every file in a directory and for every file in every subdirectory.
  • Comparison mode - md5deep can accept a list of known hashes and compare them to a set of input files. The program can display either those input files that match the list of known hashes or those that do not match. Hashes sets can be drawn from Encase, the National Software Reference Library, iLook Investigator, Hashkeeper, md5sum, BSD md5, and other generic hash generating programs. Users are welcome to add functionality to read other formats too!
  • Time estimation - md5deep can produce a time estimate when it's processing very large files.
  • Piecewise hashing - Hash input files in arbitrary sized blocks
  • File type mode - md5deep can process only files of a certain type, such as regular files, block devices, etc. hashdeep is a program to compute, match, and audit hashsets. With traditional matching, programs report if an input file matched one in a set of knows or if the input file did not match. It's hard to get a complete sense of the state of the input files compared to the set of knowns. It's possible to have matched files, missing files, files that have moved in the set, and to find new files not in the set. Hashdeep can report all of these conditions. It can even spot hash collisions, when an input file matches a known file in one hash algorithm but not in others. The results are displayed in an audit report.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.