c# 计算源代码有多少行

本文转载连接: https://blog.csdn.net/weiwenhp/article/details/7931846

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.IO;            //这个是文件读写操作用到的命名空间
using System.Text.RegularExpressions;     //这个是正则表达式命名空间


namespace ConsoleApplication2
{
    class Program
    {
        static int totalSourceCodeLines = 0;   //定义个全局变量

        static void Main(string[] args)
        {

            int result;
            string csPath = @"D:\Delete\ConsoleApplication2\ConsoleApplication2";
            result = GetsourceCodeLins(csPath);
            Console.WriteLine("{0}", result);

            Console.ReadLine();
        }

        private static int GetsourceCodeLins(string  projectPath)      //参数是源文件所在的路径
        {
              CalculateTotalCodeLins(projectPath); //调用另一个函数
              return totalSourceCodeLines;
        }

        private static void CalculateTotalCodeLins(string projectPath)
        {
           //遍历所有目录
             DirectoryInfo dir = new DirectoryInfo(projectPath);

             foreach (DirectoryInfo dirInfo in dir.GetDirectories())
             {
                // Console.WriteLine("dirInfo: {0}", dirInfo);
                 CalculateTotalCodeLins(projectPath + "\\" + dirInfo.Name); //递归调用
             }

                        

    

            // 遍历目录下的所有源文件

              foreach (FileInfo fileInfo in dir.GetFiles())
              {

                  if (Regex.IsMatch(fileInfo.Name, @".cs\z"))    //针对不同的源文件可以用正则表达式筛选,这里是.cs源文件.
                  {
                      Console.WriteLine("fileInfo: {0}", fileInfo);
                      totalSourceCodeLines += CalculateCodeLines(projectPath + "\\" + fileInfo.Name); //调用另一个函数计算每个源文件多少行.
                      //Console.WriteLine("totalSourceCodeLines: {0}", totalSourceCodeLines);
                  }
                 
              }

        }

        private static int CalculateCodeLines(string soureFilePath)

        {

            FileStream fStream = new FileStream(soureFilePath, FileMode.Open);

            StreamReader reader = new StreamReader(fStream);

            int count = 0;

            while (reader.ReadLine() != null)

            {
                count++;
            }

            reader.Close();

            fStream.Close();

            return count;           
        }

    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值