static void Main(string[] args) { try { FilesSizes sizes = new FilesSizes(); var sourcePath = ConfigurationManager.AppSettings["sourceFilePath"]; var destinationPath = ConfigurationManager.AppSettings["destinationFiePath"]; Console.WriteLine($"ByByteFileCopy() done. Bytes wrote: {ByByteFileCopy(sourcePath, destinationPath)}\n" + GetEquals(sourcePath, destinationPath, sizes)); Console.WriteLine($"InMemoryByteCopy() done. Bytes wrote: {InMemoryByByteCopy(sourcePath, destinationPath)}\n" + GetEquals(sourcePath, destinationPath, sizes)); Console.WriteLine($"ByBlockFileCopy() done. Bytes wrote: {ByBlockFileCopy(sourcePath, destinationPath)}\n" + GetEquals(sourcePath, destinationPath, sizes)); Console.WriteLine($"InMemoryCopy() done. Bytes wrote: {InMemoryCopy(sourcePath, destinationPath)}\n" + GetEquals(sourcePath, destinationPath, sizes)); Console.WriteLine($"BufferedCopy() done. Bytes wrote: {BufferedCopy(sourcePath, destinationPath)}\n" + GetEquals(sourcePath, destinationPath, sizes)); Console.WriteLine($"ByLineCopy() done. Strings wrote: {ByLineCopy(sourcePath, destinationPath)}\n" + GetEquals(sourcePath, destinationPath, sizes)); Console.ReadKey(); } catch (Exception e) { Console.WriteLine(e.Message); } }
public static bool IsContentEquals(string sourcePath, string destinationPath, ref FilesSizes file) { if (InputValidation(sourcePath, destinationPath) && File.Exists(destinationPath)) { file.Reset(); byte[] file1; byte[] file2; using (FileStream fs = File.OpenRead(sourcePath)) { file1 = new byte[fs.Length]; fs.Read(file1, 0, file1.Length); } using (FileStream fs = File.OpenRead(destinationPath)) { file2 = new byte[fs.Length]; fs.Read(file2, 0, file2.Length); } file.SourceByteCount = file1.Length; file.ResultByteCount = file2.Length; return(file1.SequenceEqual(file2)); } return(false); }
private static string GetEquals(string sourcePath, string destinationPath, FilesSizes sizes) { return($"Files are {(IsContentEquals(sourcePath, destinationPath, ref sizes) ? "equal" : "not equal")}.\n" + $"Source file in bytes: {sizes.SourceByteCount}.\n" + $"Result file in bytes: {sizes.ResultByteCount}.\n"); }