Exemple #1
0
 // 统计
 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;
     }
 }
Exemple #2
0
        // 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);
            }
        }