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.
  1. Doug
    January 20th, 2009 at 17:36 | #1

    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. Brandon
    January 20th, 2009 at 18:15 | #2

    Yes, ExactFile GUI will be able to do that no problem.

  3. Doug
    January 21st, 2009 at 22:01 | #3

    Can it display the number of files processed like FILECHECKMD5?

  4. Mike C.
    February 2nd, 2009 at 16:07 | #4

    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!

  5. Brandon
    February 3rd, 2009 at 12:23 | #5

    @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.

  6. Brandon
    February 3rd, 2009 at 12:24 | #6

    Doug :
    Can it display the number of files processed like FILECHECKMD5?

    I’ll add that.

  7. February 3rd, 2009 at 16:01 | #7

    @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.

  8. Brandon
    February 4th, 2009 at 13:26 | #8

    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.

  9. Shininggg
    February 22nd, 2009 at 18:13 | #9

    My one and only comment will be :

    WOW!very nice job!

    thx a lot for making this available

  10. Flox
    May 16th, 2009 at 09:33 | #10

    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?

  11. Brandon
    May 16th, 2009 at 12:14 | #11

    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…

  12. May 19th, 2009 at 15:38 | #12

    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

  13. Brandon
    May 19th, 2009 at 16:11 | #13

    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.

  14. Foo Bar
    May 25th, 2009 at 15:01 | #14

    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.

  15. Brandon
    May 25th, 2009 at 15:12 | #15

    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.

  16. Ray
    June 8th, 2009 at 14:04 | #16

    @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!

  17. Steve
    June 13th, 2009 at 07:48 | #17

    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.

  18. Brandon
    June 15th, 2009 at 19:21 | #18

    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.

  19. Dan Zemke
    July 17th, 2009 at 17:12 | #19

    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 ;-}

  20. Dan Zemke
    July 18th, 2009 at 07:17 | #20

    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

  21. Gomezie
    January 4th, 2010 at 07:16 | #21

    @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

  22. b1gf00t
    June 7th, 2010 at 04:18 | #22

    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.

  23. Nothing
    June 23rd, 2010 at 12:46 | #23

    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,

  24. John Aadnoey
    July 30th, 2010 at 10:59 | #24

    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. :)

  25. Andrey
    August 17th, 2010 at 10:44 | #25

    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.

  26. Jake Livni
    October 13th, 2010 at 07:57 | #26

    @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.

  27. Tom
    September 3rd, 2011 at 13:53 | #27

    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!

  1. June 28th, 2010 at 13:59 | #1