public static void InitializeFiles(SyncExecution syncExec) { Console.WriteLine("\n"); Console.WriteLine("Fetching source and destination files..."); var folderMappings = syncExec.SyncConfig.FolderMappings; var watchInitFiles = new Stopwatch(); var watchSourceFiles = new Stopwatch(); var watchDestFiles = new Stopwatch(); var sourceFilesTemp = new List <string>(); var destFilesTemp = new List <string>(); watchInitFiles.Start(); foreach (var pair in folderMappings) { WorkingWithFiles.GetFiles(pair.Value.Item1, sourceFilesTemp); WorkingWithFiles.GetFiles(pair.Value.Item2, destFilesTemp); } _totalSourceFilesCount = sourceFilesTemp.Count; _totalDestFilesCount = destFilesTemp.Count; Console.WriteLine("Source files: " + _totalSourceFilesCount); Console.WriteLine("Destination Files: " + _totalDestFilesCount); Console.WriteLine("Populating source files list..."); foreach (var pair in folderMappings) { PopulateSourceFiles(syncExec, pair.Value.Item1, sourceFilesTemp); } Console.WriteLine("\rDone. "); Console.WriteLine("Populating destination files list..."); foreach (var pair in folderMappings) { PopulateDestFiles(syncExec, pair.Value.Item2, destFilesTemp); } Console.WriteLine("\rDone. "); Console.WriteLine($"Elapsed time: {FormatTime(watchInitFiles.ElapsedMilliseconds)}"); }