public bool CheckFoldersExistance(bool printErrorMessage) { if (!_isCheckedFolderExist && printErrorMessage) { ConsoleExtensions.WriteInColor($"The checked folder doesn't exist.\n[{GetCheckedFolderFullName()}].\n\n", ConsoleColor.Red); } if (!_isBaseFolderExist && printErrorMessage) { ConsoleExtensions.WriteInColor($"The base folder doesn't exist.\n[{GetBaseFolderFullName()}].\n\n", ConsoleColor.Red); } if (!_isCheckedFolderExist || !_isBaseFolderExist) { ConsoleExtensions.WriteInColor("Application execution will be terminated.\n", ConsoleColor.Red); return(false); } return(true); }
public static void Main(string[] args) { var initFilePath = @"C:\Users\oholenko\source\repos\SearchDuplicateFiles\TestData\FolderPathesInit.txt"; // var initFilePath = @"C:\Users\cat-b\source\repos\SearchDuplicateFiles\TestData\FolderPathesInit.txt"; var syncFiles = new SyncFiles(initFilePath); if (!syncFiles.CheckInitFileExistance(true) || !syncFiles.CheckFoldersExistance(true)) { return; } if (!syncFiles.GetUserAcceptanceOfFolderNamesCorrectness(true)) { return; } ConsoleExtensions.WriteInColor($"\nChecked folder contain {syncFiles.GetCheckedFolderFiles().Count} file(s).\n", ConsoleColor.Blue); ConsoleExtensions.WriteInColor($"Base folder contain {syncFiles.GetBaseFolderFiles().Count} file(s).\n", ConsoleColor.Blue); ConsoleExtensions.WriteInColor($"It were found {syncFiles.GetDuplicateFiles().Count} duplicate file(s).\n", ConsoleColor.Blue); ConsoleExtensions.WriteInColor("\nDo move duplicate files to Duplicate folder? (yes/no): ", ConsoleColor.Yellow); string moveFileAnswer = Console.ReadLine().Trim().ToLower(); if (moveFileAnswer != "yes") { return; } // syncFiles.GetCheckedFolderFiles().ForEach(file => Console.WriteLine(file.FullName)); // Console.WriteLine("--------"); // // syncFiles.GetBaseFolderFiles().ForEach(file => Console.WriteLine(file.FullName)); // Console.WriteLine("--------"); // // syncFiles.GetDuplicateFiles().ForEach(file => Console.WriteLine(file.FullName)); // Console.WriteLine(); // Move file to Duplicates folders string duplicatesPath = Directory.CreateDirectory(Path.Combine(Directory.GetParent(syncFiles.GetCheckedFolderFullName()).FullName, "Duplicates")).FullName; syncFiles.GetDuplicateFiles().ForEach(file => { try { File.Copy(file.FullName, Path.Combine(duplicatesPath, file.Name)); } catch (Exception ex) { ConsoleExtensions.WriteInColor($"{ex.Message}\n", ConsoleColor.Red); } finally { File.Delete(file.FullName); } }); switch (syncFiles.GetDuplicateFiles().Count) { case 0: ConsoleExtensions.WriteInColor("\nNo duplicate files.\n", ConsoleColor.Red); break; case 1: ConsoleExtensions.WriteInColor($"\n{syncFiles.GetDuplicateFiles().Count()} file was moved.\n", ConsoleColor.Blue); break; default: ConsoleExtensions.WriteInColor($"\n{syncFiles.GetDuplicateFiles().Count()} files were moved.\n", ConsoleColor.Blue); break; } }