exf

exf screen
exf is a console (command line) Windows utility similar to fsum, md5sum, sha1sum, etc.

  • Multi-threaded operation scans multiple files concurrently so stuff gets done faster.
  • Unicode-compatible so that Unicode file names aren’t a problem.
  • Tests and creates digest files in the following formats:
    • md5sum/fsum
    • sha1sum
    • sfv
    • FileCheckMD5
  • Supports multiple hash (checksum) routines:
    • Adler32
    • CRC32
    • MD2, MD4, MD5
    • SHA1, SHA2 (SHA256, SHA384, SHA512)
    • RIPEMD128, RIPEMD160
    • TIGER128, TIGER160, TIGER192
    • GOST
  • Supports recursive directory scanning
Revision history:
exf 1.0.1.6 BETA
  • Fixed problem that caused batch files to terminate with exf.
    This was caused by the way Windows consoles handle changing of the output code page.  exf now reverts the console output code page to the pre-existing code page setting when exf finishes. This means that Unicode characters will appear as squares on the screen, but redirected output (such as to a file) does not lose data, so this is okay.
  • Minor performance improvement.
exf 1.0.0.4 BETA
  • Changed SHA1 style output and digest input scanning to be compatible with GNU sha1sum.
exf 1.0.0.3 BETA
  • Adjustments to file reading code.
  • Fixed hidden files not getting scanned.
  • Added -fp switch to include full path in digest output.
  • Console output includes number of files hashed.

exf 1.0.0.1 BETA

  • Initial release.

45 thoughts on “exf

  1. Doug

    Very nice program, I can’t wait for the GUI version. I have been using FILECHECKMD5 for years and on my USB drive. Will the GUI version have the ability to process a single file like dpasha can?

  2. Mike C.

    I was looking for a SHA1 checksum generator that would work recursively (unlike sha1sum!) and found exf. Awesome! Congrats! That being said, for SHA1 sums, the output format requires an asterisk (“*”) before the filename:

    with exf:
    ; Checksums generated by ExactFile Console Application 1.0.0.1 BETA
    ; http://www.ExactFile.com
    ; 2/2/2009 1:57:41 PM
    ;
    cf977187a5604cc29cdf2185c0e616a37b8a8ce5 test.pdf

    with sha1sum (using -b for binary files):
    cf977187a5604cc29cdf2185c0e616a37b8a8ce5 *test.pdf

    I might not have got it right but it’d be nice to have the ability to have the full path saved in the output file, e.g. C:\test.pdf.

    Again, great job!

  3. Brandon Post author

    @Mike C.

    with sha1sum (using -b for binary files):
    cf977187a5604cc29cdf2185c0e616a37b8a8ce5 *test.pdf
    I might not have got it right but it’d be nice to have the ability to have the full path saved in the output file, e.g. C:\test.pdf.
    Again, great job!

    I can add a switch for full path output in file names.

    As for sha1sum — the sha1sum executable I have does not have a binary switch and outputs exactly as the -osha1 output from exf. What Windows sha1sum binary are you using? I’ll need to check it out.

  4. Mike C.

    @Brandon
    sha1sum on Windows is apparently a trimmed down version of the original Unix/Linux version. On Linux, sha1sum has an option to read files in binary mode (not needed on Windows) and you get this:

    [mike@FEDORA6 ~]$ sha1sum -b foo.txt
    6476df3aac780622368173fe6e768a2edc3932c8 *foo.txt
    [mike@FEDORA6 ~]$
    [mike@FEDORA6 ~]$ sha1sum foo.txt
    6476df3aac780622368173fe6e768a2edc3932c8 foo.txt

    Again, on Windows, the “-b” is implied.

  5. Brandon Post author

    Mike C. :
    @Brandon
    sha1sum on Windows is apparently a trimmed down version of the original Unix/Linux version. On Linux, sha1sum has an option to read files in binary mode (not needed on Windows) and you get this:
    [mike@FEDORA6 ~]$ sha1sum -b foo.txt
    6476df3aac780622368173fe6e768a2edc3932c8 *foo.txt
    [mike@FEDORA6 ~]$
    [mike@FEDORA6 ~]$ sha1sum foo.txt
    6476df3aac780622368173fe6e768a2edc3932c8 foo.txt
    Again, on Windows, the “-b” is implied.

    I’ve updated exf (1.0.0.4) to work with gnu sha1sum style output. exf only works with binary, though, so it would not return the same checksum as gnu sha1sum in text mode.

  6. Flox

    Great program – just what I needed to check that a copy has copied ok.

    If checking files just after creating a checksum from them will the program “force” a read of the media where the files reside or will it just read from the RAM cache so a reboot is nessesary to clear ram?

  7. Brandon Post author

    Flox :
    If checking files just after creating a checksum from them will the program “force” a read of the media where the files reside or will it just read from the RAM cache so a reboot is nessesary to clear ram?

    That’s left up to the operating system; typically if you check immediately after making the checksum file, it’ll just be pulled from the RAM cache. I’ll see about forcing it clear for files being tested. Not sure if that’s easily done or not…

  8. Len Linkens

    I am trying to use exf within a batch file. The program runs correctly but then exits the bat file without continuing on to the next command.. Is there a switch or something that would correct this behavior?

    Len

  9. Brandon Post author

    Len Linkens :
    I am trying to use exf within a batch file. The program runs correctly but then exits the bat file without continuing on to the next command.. Is there a switch or something that would correct this behavior?
    Len

    I’ll have to do some testing to see what is causing that.

  10. Foo Bar

    Nice program. Can you make a Linux port, at least for the command-line version? The multithreaded comp and extra hash functions would be a nice addition to the standard hash utils.

  11. Brandon Post author

    Foo Bar :
    Can you make a Linux port,

    No, at least not for a while. If Embarcadero gets a cross-platform compiler in place (as they are planning), I might do a command-line version. But I don’t use Linux so this will be an extremely low priority for me.

  12. Ray

    @Brandon
    Need to say, great work! Thanks for coming up with this, very helpful for checking those large copies. I am seeing the same thing in that when I call exf.exe from a batch script the exf.exe command runs correctly but then closes the script. I am also seeing that if I run the batch script from an existing command session I can not run the script again till I close that session and open a new one. Hope that helps some.

    Again, thank you for all the great work so far!

  13. Steve

    Would be great if you could add “exit code” feature to exf. Many command line utilities has this feature, for example, RAR, even fSum has it. Let’s say, 0 – means successful operation, 1 – Summing error occured, 2 – Fatal error, etc. etc. Exit code is very important when users are dealing with automation tasks. Thanks.

  14. Brandon Post author

    Version 1.0.1.6 fixes the problems reported with batch files. Due to the required changes to make it work properly with batch files, Unicode symbols will now show on screen as boxes. However, exf itself is still running with Unicode capability, and redirected output to a file will retain the full data, so this is not a problem.

  15. Dan Zemke

    Thanks for the excellent program! It’s perfect for digital photographers interested in maintaining a reliable archive.

    There are quite a few folks interested in validating images over time as part of Digital Asset Management. A guy named Peter Krogh has a nice web site to discuss the topic at http://thedambook.com/

    Yes the site name was picked to advertise a book, but the forum is also a good place to go to ask questions or discuss DAM issues. In any case, I’m going to go over and suggest that folks take advantage of your wonderful software.

    Thanks very much,

    Dan

    p.s. It was easy to make a small donation via PayPal by clicking your Donate button on the home page ;-}

  16. Dan Zemke

    Hi again Brandon.

    I did post a positive note about ExactFile over on the other web site I mentioned. After thinking about the way photographers are likely to use your software a bit more, I have a feature request: Support “shortcuts” to folders as if they were native folders in your Create Digest and Check Digest scans.

    This would enable multi-volume collection support in the non-“Professional” versions of XP, Vista and probably Win 7. It would also defuse some probable objections.

    As you may know, it’s increasingly popular to shoot in “RAW” mode with digital SLR’s. There are lots of image processing and quality advantages to doing so over JPEGs but it does produce lots of data. My “old” Canon XTi records about 10 MB of compressed data per shot and my newer Canon 50D records about 30 MB per shot. Nikon, Olympus and … SLR cameras produce similar amounts.

    The need for multi-volume disk support is here today for some. I, and many others, are likely to need it in the near future. So if this request is reasonably easy to add, please consider it for your next version.

    Thanks,

    Dan

  17. Gomezie

    @Brandon

    Firstly thanks very much for this software.. I have been using EXF rather than the Gui version to take away the chance of user error, and also to instruct end users on using a check method correctly.

    Can you please tell me.. is there a way to have a progress bar of sorts, whilst EXF is generating hashes?

    Because I have used batch files with this, a user only sees a blank screen and assumes that it has “crashed” :0)

    Thanks again!

    Many Thanks
    Gomezie

  18. b1gf00t

    Hi,

    Firstly, allow me to thank you for such a wonderful and necessary application.

    Second, I have a small problem, maybe you can shed some light on. If I have a folder that has 50 subfolders with md5 and sfv checksum files, how do I set exactfile to scan the root document for checksum files and verifies the integrity of each folder.

    I need this when I am mirroring my HD to another HD, and it is important to verify that data is successfully copied.

    PS: I md5 and sfv every folder I have, used to use another software for that, before I found Exactfile.

    Thanks.

  19. Nothing

    Hi,

    I’ve just found this program, great work !!

    How can I use the return code of this program, on a batch (.cmd) script ?

    Thanks,

  20. Pingback: Why use file integrity MD5 checksum? « Networknet.nl Blog

  21. John Aadnoey

    Exf looks like just what I have been searching for. But there is one thing I’d like to see added if possible. Its a function every program of this kind seems to be missing.
    Would it be possible to add a fucntion like this.

    When you set it to make a checksum file of like tens of folders that it will create one checksum file in each folder for the files here present that is either named after the folder they are in or have a name you choose yourself.

    Secondly the gui version will always choose “checksum” as a name when you do it the quick way, what about the option to set your own name in setting or make it use the folder name for it?

    Great work and goodluck with it forward. 🙂

  22. Andrey

    Thanks for a good program. Console version is very flexible.

    1. Found bug: source digest *.md5 file for testing is limited to something about 40k (44032 bytes). While testing onmy archives, on some point program reports that some file does not exists and stops. In a digest *.md5 file some others strings exists, but are not processed.

    2. Required feature: it is very likely that program can accept not only files mask like *.zip but name of the file (for example: -fl 1.lst), containing list of the files to process. This is very useful for shells like FAR manager which can create dynamic list of currently selected on the panel files to pass their names as a list file to data processor.

  23. Jake Livni

    @Dan Zemke

    I found ExactFile from checking out TheDAMBook Forum. Not sure yet if it is what I need.

    I want to use ExactFile for verifying a copy of an entire photo archive, let’s say 250-300 GB. I want to copy the archive to an external disk and then delete the original (so that I will then be able to enlarge the partition). Before deleting the original, I want to confirm that the copy is valid.

    From what I have seen in “usage”, ExactFile works on individual files but not on large folder-directories. Can ExactFile produce a single checksum hash for 250-300 GB or does it just produce this for each file individually? (With just a single hash for the whole directory structure, a checksum comparison failure will only tell us that the copy is not valid, without saying where in those 300 GB the failure occurred. If EF produces individual hashes for thousands of files, how are these compared?) CAN ExactFile handle a directory of 250-300 GB or so containing thousands of individual files in many sub-directories?

    Thanks for any feedback.

  24. Tom

    Great work you’ve done here Brandon.
    Any chance you could add an option to include the basic file properties in the Digest file? Having the file size and dates would be fantastic.
    Thanks!

  25. Chris

    Ever consider adding some options (maybe to command line) so a person could skip a certain file type? Or add email notification on error or completion? This tool would be perfect for me if it had that. Ha. Seriously though, awesome work on this tool.

  26. Adi

    I would be interested in a program that can create a checksum for a drive, to be able to use in Windows what in Linux would be “md5sum /dev/cdrom”. Or, instead of a separate program, this could be a function of exf. This would be useful to check if an image was correctly written to a disk. The checksum of the image after download should match the checksum of the disk with the image on it.

  27. Michael

    Great checksum utility! Unicode support is a big plus too.

    Would it be possible to return a non-zero error code in the event of a failed digest test, or a failed hash? It’d be very useful for error handling in batch files and so on.

  28. Very interested

    Most excellent work here…I’ve seen several comments about whether or not an exit code can be passed? I am looking for a replacement for M$’s FCIV.exe and want to write a VB wrapper around exf, but i need to be able to grab an exit code.

  29. Dave

    Excellent program – however, files with either +h or +s are not scanned and hashed with exf 1.0.1.6 BETA. I have not tried the GUI version as I primarily use the console due to large number of files involved (1+mil) and many GUI programs out there weren’t able to cope in this situation (ran out of memory).

    Again, 5 out of 5 stars.

    Much thanks.

  30. No

    UPDATE

    == BUG ==

    Dirs with System attribute are not scanned as Feb 2015, ver ExactFile Console Application 1.0.1.6 BETA

  31. Daniel

    Either a bug or I’m not doing something right. There are two folders with setup files that aren’t being seen by ExactFile under a certain condition. If I create a digest several directories up, it doesn’t see them. But if I create a digest of that directory specifically, it includes them. The only thing I see that makes those folders stand out is that they’re marked hidden in properties. When I change that, they are seen and treated normally in ExactFile. Just the folder the setup files were in was marked hidden, not the files. If I remark that folder as hidden, the problem returns.

    I see you worked on a similar issue at 1.0.0.3. I’m using version 1.0.0.15 BETA.

    You have created a fantastic program. Thank you!

  32. Brandon Post author

    That’s by design. An option to scan those types of folders/directories would be a good addition, I agree.

  33. Daniel

    I’m trying to understand something here. By design, your program ignores hidden folders. But you fixed a bug where it missed hidden files. Why give attention to hidden files but not hidden folders, by design? This behavior is not obvious to people who would use your program and cause some errors in directory content integrity checking. I ran into that and was very confused about what had happened until I narrowed it down to this.

  34. Sunny Saini

    Dear Programmer,

    I tested various softwares including MultiHash, FileVerifier++, FSum, Slavasoft’s Hash Calculator, Easy Hash, Jacksum, Karen Hasher etc. However, I found both exf.exe and ExactFile much better and easy to use among all these.

    I would feel glad if you also add keccak algorithm to both of your software.

    Thanks,

    Faithfully,
    Sunny Saini

  35. AntonK

    The console utility is a great tool – almost exactly what I’ve been searching for.
    It would be just excellent if it had extra two features:
    1) Exclude/include files/directories by wildcards or via an external list – there is no sense in calculating checksums for Thumbs.db or other regenerated cache-like files.
    2) When processing directories instead of storing checksums in one large file it would be handy to have one file in each subdirectory (same effect can now be achieved with an extra script).

  36. Gary

    The description doesn’t include compatibility with Windows 10?

    “For Windows 2000, XP, Vista, and 7.”

    I’m looking for a replacement for QuickSFV since that breaks the right-click context menu in Win10. Will this be updated to work in Windows 10?

  37. Jan Eilertsen

    Hello, ExactFile is a tool I used and loved on Windows. Now I have switched to Linux, and haven’t yet found a similar tool. Anyone know one ?

    But my ideal tool is a combined multi-threaded file copy AND hash-generating tool:
    Why have to first copy all 2 TB of data from HD1 to HD2 and then read them all again to generate hash ?!
    So my ideal tool would use multithreading, generate hash on the fly, support command-line flags about ignoring folders, etc. and produce a fairly standard checksum file, e.g. in each folder, so subtrees could be verified, etc. Oh, the tool should be open source, so both Windows and Linux versions could be compiled 🙂

    Does anyone know about such a tool ?

    Brandon, thanks for ExactFile !

Comments are closed.