计算源代码有多少行
2012-09-01 12:38
162 查看
看软件工程方面的一些书时里面会提到源代码多少行.比如一百万行代码的项目与十万行代码的项目所采取的管理方式可能就不一样.于是就想了解下自己参与的项目目前有多少行代码了.但一问同事都说不太清楚,可能是几十万上百万的样子吧.这也太不准了.于是就想到写些代码去计算下.
其实方法很简单,只要遍历所有源文件,然后计算每一个源文件有多少行代码就行了.下面是详细的代码
using System.IO; //这个是文件读写操作用到的命名空间
using System.Text.RegularExpressions; //这个是正则表达式命名空间
int totalSourceCodeLines = 0; //定义个全局变量
public int GetsourceCodeLins(string projectPath) //参数是源文件所在的路径,比如D:\SourceCode\MyCode
{
CalculateTotalCodeLins(projectPath); //调用另一个函数
return totalSourceCodeLines;
}
private void CalculateTotalCodeLins(string projectPath)
{
//遍历所有目录
DirectoryInfo dir = new DirectoryInfo(projectPath);
foreach (DirectoryInfo dirInfo in dir.GetDirectories())
CalculateTotalCodeLins(projectPath + "\\" + dirInfo.Name); //递归调用
遍历目录下的所有源文件
foreach (FileInfo fileInfo in dir.GetFiles())
{
if (Regex.IsMatch(fileInfo.Name, @".*\.(h|cpp)")) //针对不同的源文件可以用正则表达式筛选,这里是C++源文件.
totalSourceCodeLines += CalculateCodeLines(projectPath + "\\" + fileInfo.Name); //调用另一个函数计算每个源文件多少行.
}
}
//计算每个源文件多少行
private 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;
}
当然这样计算出来的行数可能不太准确.可以考虑一共多少个源文件,然后每个源文件平均有多少行头文件,多少空格.然后减去这些行数就相对比较准确了。
其实方法很简单,只要遍历所有源文件,然后计算每一个源文件有多少行代码就行了.下面是详细的代码
using System.IO; //这个是文件读写操作用到的命名空间
using System.Text.RegularExpressions; //这个是正则表达式命名空间
int totalSourceCodeLines = 0; //定义个全局变量
public int GetsourceCodeLins(string projectPath) //参数是源文件所在的路径,比如D:\SourceCode\MyCode
{
CalculateTotalCodeLins(projectPath); //调用另一个函数
return totalSourceCodeLines;
}
private void CalculateTotalCodeLins(string projectPath)
{
//遍历所有目录
DirectoryInfo dir = new DirectoryInfo(projectPath);
foreach (DirectoryInfo dirInfo in dir.GetDirectories())
CalculateTotalCodeLins(projectPath + "\\" + dirInfo.Name); //递归调用
遍历目录下的所有源文件
foreach (FileInfo fileInfo in dir.GetFiles())
{
if (Regex.IsMatch(fileInfo.Name, @".*\.(h|cpp)")) //针对不同的源文件可以用正则表达式筛选,这里是C++源文件.
totalSourceCodeLines += CalculateCodeLines(projectPath + "\\" + fileInfo.Name); //调用另一个函数计算每个源文件多少行.
}
}
//计算每个源文件多少行
private 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;
}
当然这样计算出来的行数可能不太准确.可以考虑一共多少个源文件,然后每个源文件平均有多少行头文件,多少空格.然后减去这些行数就相对比较准确了。
相关文章推荐
- 计算2个时间之间经过多少Ticks
- JavaScript 计算指定月份有多少天
- js根据年月计算出这个月有多少周
- [计算几何]点集中的点能组成多少个正方形
- SQL语句计算两个日期之间有多少个工作日的方法
- 一段js小代码,计算距春节还有多少天
- 金山招聘题目: 编程计算从1到2008080808之间的整数有多少个含有数字7
- 计算诸葛亮《出师表》中一共出现了多少种汉字
- Super Pi-计算10000位圆周率需要多少时间?
- asp.net 中计算某月总共有多少天 最后一日是几号。
- 输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n
- Javascript在ASP.NET中的用法:计算还剩余输入多少个字符
- PHP计算一年多少个星期和每周的开始和结束日期
- java计算两个日期相差多少天小时分钟等
- 黑马程序员-根据本地地址计算文本中有多少行的代码
- 统计数字问题。给定一本书,其中包含n页,计算出书的全部页码中用到了多少个数字0…9。
- 计算一个时间距离今天还有多少天
- 17周课后自主-项目四-2-计算两个日期之间差了多少天
- 十进制整数,计算对应的二进制数包含多少个1,用位操作