/// <summary> /// Parses a directory, looking for every config.cpp file /// </summary> /// <param name="directoryPath">The path of the folder</param> /// <param name="merge">Indicates whether the <see cref="Model"/>s will be merged into one.</param> /// <returns>The collection of models.</returns> public List <Model.Model> ParseDirectory(string directoryPath, bool merge = false) { if (!Directory.Exists(directoryPath)) { throw new ArgumentException("The directory Specified does not exist.", "directoryPath"); } var files = Directory.GetFiles(directoryPath, "config.cpp", SearchOption.AllDirectories); var result = new List <Model.Model>(); foreach (var file in files) { var model = this.Parse(file); result.Add(model); } if (merge) { var mergedModel = new Model.Model(); mergedModel.MergeFromListOfModels(result); return(new List <Model.Model> { mergedModel }); } return(result); }