예제 #1
0
        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));
                }
        }