public LineCountResult Execute() { var regexList = new List<Regex>(); foreach (var wildcard in Wildcards) { regexList.Add(new Regex(WildcardToRegex(wildcard))); } var result = new LineCountResult(); foreach (var dir in Directories) { foreach (var filePath in Directory.EnumerateFiles(dir, "*", SearchOption.AllDirectories)) { foreach (var regex in regexList) { if (regex.IsMatch(filePath)) { CountLines(filePath, result); } } } } return result; }
private void CountLines(string filePath, LineCountResult result) { var lines = File.ReadAllLines(filePath); foreach (var line in lines ) { if (string.IsNullOrWhiteSpace(line)) { result.BlankLines++; } } result.TotalLines += lines.Length; result.TotalFiles++; }