// 统计 static void GetTotalFiles(out int files, out int lines) { files = 0; lines = 0; foreach (string key in _counter.Keys) { FileCounter cnt = _counter[key]; files += cnt.Files; lines += cnt.Lines; } }
// console public static void RunConsole(Config cfg) { // 参数校验 var folder = cfg.Folder; var outFile = cfg.OutFile; var outLines = cfg.OutLines; if (folder.IsEmpty()) { MessageBox.Show("请录入源代码目录", "错误"); return; } // 处理 long totleLines = 0; StreamWriter sw = (outFile == null) ? null : new StreamWriter(outFile); Log(ConfigurationManager.AppSettings["about"]); Log("{0}", System.DateTime.Now); ProcessFolder(cfg, folder, ref totleLines, ref sw); if (sw != null) { sw.Close(); } // 显示统计信息 int files, lines; GetTotalFiles(out files, out lines); Log(""); Log("-----------------------------------------"); Log("-- " + folder); Log("-----------------------------------------"); Log("类别\t文件数\t代码行数\t平均"); Log("----\t------\t--------\t--------"); foreach (string key in _counter.Keys) { FileCounter cnt = _counter[key]; Log("{0}\t{1}\t{2}\t{3}", key, cnt.Files, cnt.Lines, GetAverage(cnt.Lines, cnt.Files)); } Log("----\t------\t--------"); Log("合计\t{0}\t{1}\t{2}", files, lines, GetAverage(lines, files)); Log(""); Log("{0}", System.DateTime.Now); Log("{0}", folder); // 打开输出文件 if (cfg.OpenWhenFinished && !cfg.OutFile.IsEmpty()) { System.Diagnostics.Process.Start(cfg.OutFile); } }