static int Main(string[] args) { var directoryInfos = args.Select(v => new DirectoryInfo(v)).ToArray(); var inputDirectories = directoryInfos.Take(directoryInfos.Length - 1).ToArray(); var outputDirectory = directoryInfos.Last(); try { var merger = new Merger(); merger.Input(inputDirectories); merger.Output(outputDirectory); return(0); } catch (Exception e) { return(1); } }