Exemple #1
0
        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);
        }
Exemple #3
0
 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");
 }