It even does three ways! Now that I've raised our Google rank by an order of magnitude, it's time to further discuss UltraCompare 8.0 ($50, 30-day free trial), the latest version of the powerful file and folder comparison tool. IDM Computer Solutions has found a good niche for itself producing ever more feature-rich tools aimed primarily at programmers and network administrators, and UltraCompare 8.0 continues this tradition.
The basics one expects from any diff tool are there: Side-by-side comparison of files or folders, color-coded highlighting of how they are alike or not alike, showing items missing or matching from either. Synchronized scrolling, merge left or right, and tools to navigate through the files. UltraCompare also has a variety of nice utility features; for example, you can move to next/previous difference with or without also selecting the text of the difference. This removes the "Click next difference, drag mouse to select changed text, curse when you get too much or too little, repeat" aspect.
UltraCompare's three-way compare/merge functionality deserves a mention as well. In this mode, you can compare two documents to a third. The middle pane shows the "main" or "primary" source; the left and right panes show the files being compared to it. If multiple people have edited copies of a file, this is a good way to compare copies to one single standard, instead of directly to each other. For example, I send the same code to two people for their comments and improvements; each sends me back their edited file; I can compare both of them to my original and instantly see which changes are the same and which are different.
Folder comparison is very similar in nature. UltraCompare highlights files which exist or are different in each directory. One of the primary uses for this functionality is verifying "standard" directories, such as the files needed to make an installation disk, or to look for unusual activity that could be a sign of file corruption or a virus.
Since the core functionality is well-established in UltraCompare, it's best to look at what's new. The most useful function, in my opinion, is the ability to compare the content of Microsoft Word documents (.doc and .docx). Although most coding is done in plain text, writers of technical and detailed documents (such as legal papers) often choose Word. Having a comparison tool that "speaks Word" is very useful, especially if looking for tiny changes buried on page 67 of a contract. When being viewed in this way, font styles and other formatting are not shown; only the underlying text is displayed.
Another function, one that's starting to show up in more programs as hard drives bloat and file counts reach into the hundreds of thousands, is duplicate file search. This will go through any directories you select and find files which are identical, based on name, size, or a binary scan of content, as the user chooses. Although it works quickly, even on large directories, the report is difficult to use, and there are some interface issues. When going through the results, I clicked each set of duplicates, and checked the ones I wanted deleted. However, UltraCompare did not preserve the check marks as I moved from item to item. To delete duplicates, you need to look at a set of items, click the ones you want to remove, click a delete button, then move to the next set. While one extra button click doesn't seem like much, if you've got a hundred or more duplicate items, it really adds up. For duplicate file search and removal, it might make more sense to use a dedicated tool; I like the free Auslogics Duplicate File Finder.
Since we're discussing the interface, one annoyance that shows up in almost every part of UltraCompare is truncated path names. That is, it will display long paths as "C:\First Directory\Second Directory\(...)\Last Directory". This is welcome behavior if the window is small, but no matter how much I widened the windows, it would not show more of the path name. Very often, the part I most needed to know was buried in the "(...)". UltraCompare will show the full path if you hover the mouse, but in some cases even this path was truncated. This issue has been acknowledged and been sent to development for review.
These minor issues aside, UltraCompare 8.0 is a full-featured powerhouse. Almost all development environments have built in file comparison tools that deliver the basics, so UltraCompare is a worthwhile purchase if tracking changes, performing merges, and rooting out discrepancies is something you do very often and you need as much functionality as you can get. (The ability to do Word compares extends functionality outside of the coding sphere, however--it's much easier to use, ironically, than Word's own comparison system.) At $50, it's inexpensive but not quite a "Just in case I need it" purchase. If comparing files is something you do at all regularly, though, UltraCompare is worth it.