class Program { static void Main(string[] args) { int totalLineCount = 0; string directory; if(args.Length>0) { directory = args[0]; } else { directory = Directory.GetCurrentDirectory(); } directory = @"F:\workdocs"; Console.WriteLine(directory); totalLineCount = DirectoryCountLines(directory); System.Console.WriteLine(totalLineCount); Console.ReadLine(); } static int DirectoryCountLines(string directory) { int lineCount = 0; foreach(string file in Directory.GetFiles(directory,"*.cs")) { lineCount += CountLines(file); } foreach(string subdirectory in Directory.GetDirectories(directory)) { lineCount += DirectoryCountLines(subdirectory); } return lineCount; } private static int CountLines(string file) { string line; int lineCount = 0; FileStream stream = new FileStream(file,FileMode.Open); StreamReader reader = new StreamReader(stream); line = reader.ReadLine(); while(line!=null) { if(line.Trim()!="") { lineCount++; } line = reader.ReadLine(); } reader.Close(); return lineCount; } }