src/org/kocakosm/pitaya/io/XFiles.java
public static boolean equal(File f1, File f2) throws IOException
	{
		if (f1 == f2) {
			return true;
		}
		if (f1 == null || f2 == null || !haveSameType(f1, f2)) {
			return false;
		}
		return f1.equals(f2) ? true : haveSameContent(f1, f2);
	}
public static boolean equal(File f1, File f2) throws IOException
	{
		if (f1 == f2) {
			return true;
		}
		if (f1 == null || f2 == null || !haveSameType(f1, f2)) {
			return false;
		}
		return f1.equals(f2) ? true : haveSameContent(f1, f2);
	}
Returns whether the given {@code File}s have the same content. Two
regular files are considered equal if they contain the same bytes.
Two directories are considered equal if they both contain the same
items where an item is either a directory or a regular file (items
must have the same name and content in both directories).

@param f1 the first {@code File}.
@param f2 the second {@code File}.

@return whether the given {@code File}s have the same content.

@throws IOException if the content of the {@code File}s can't be read.