public static bool AreFileContentsEqual(string fileA, string fileB) { const int bufferSize = sizeof(Int64) << 10; using (var streamA = new FileStream(fileA, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize)) using (var streamB = new FileStream(fileB, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize)) { if (streamA.Length != streamB.Length) { return(false); } var seqA = streamA.AsIenumerable(bufferSize); var seqB = streamB.AsIenumerable(bufferSize); return(seqA.Zip(seqB, (bA, bB) => bA == bB).All(b => b)); } }