public static bool AreEqual(FileInfo src, FileInfo dest, CompareMethod method) { if (method.HasFlag(CompareMethod.SizeInBytes)) { if (src.Length != dest.Length) { return(false); } } if (method.HasFlag(CompareMethod.LastWriteTime)) { if (src.LastWriteTime != dest.LastWriteTime) { return(false); } } if (method.HasFlag(CompareMethod.Attributes)) { if (src.Attributes != dest.Attributes) { return(false); } } // ReSharper disable once InvertIf if (method.HasFlag(CompareMethod.Contents)) { if (!AreContentsIdentical(src, dest)) { return(false); } } return(true); }