internal Copier(ArgsDto options) { _options = options; _result = new CopyResult(); _sourceFiles = new List <FileInfo>(); _outFolder = _options.Output.FullName + "\\"; _inputFolder = _options.Input.FullName; }
private static ArgsDto ParseInput(string[] args) { if (args == null || args.Length != 2 || args.Any(x => x.Contains("?"))) { Console.WriteLine(Environment.NewLine); Console.WriteLine("Use: CopyLarger \"<source folder>\" \"<target folder>\""); Console.WriteLine(Environment.NewLine); Console.WriteLine("CopyLarger does not check if the target folder has enough room, nor if the file content differs when the sizes are equal."); Console.WriteLine("Files and folders will be copied with the same structure as source folder has"); Utils.WriteExit(1); return(null); //make code validation happy } var options = new ArgsDto(); if (Directory.Exists(args[0])) { options.Input = new DirectoryInfo(args[0]); } else { Console.WriteLine($"Invalid input folder: {args[0]}"); Utils.WriteExit(12); } if (Directory.Exists(args[1])) { options.Output = new DirectoryInfo(args[1]); } else { Console.WriteLine($"Invalid output folder: {args[1]}"); Utils.WriteExit(13); } return(options); }