Comparison methods for Photo objects
You seem confused.  Given two objects, a.Equals(b) tests whether they have equivalent content.  Basically, what you wrote as UnnamedCompareMethodB() should actually be the Equals() method.

I wouldn't bother with defining an UnnamedCompareMethodA() at all.  If someone wants to compare objects by FullFilePath, they can just write a.FullFilePath.Equals(b.FullFilePath).

Furthermore, calling object.ReferenceEquals(this, null) makes little sense.  If the object were indeed null, the code would have already crashed with a NullReferenceException before then.