📅  最后修改于: 2023-12-03 15:13:52.669000             🧑  作者: Mango
当我们在开发一个大型的项目时,会遇到很多的代码文件,这些代码文件里面可能会有成千上万行代码。在这个时候,我们可能会需要计算一下我们代码文件的总行数,以帮助我们更好的管理和维护代码。在本文中,我们将介绍如何使用 C# 编写一个程序来计算行数。
我们需要做的是遍历指定的目录,找到所有的源代码文件,然后对每个文件进行逐行读取,计算行数。具体的实现思路如下:
经过上面的思路分析,我们可以开始编写程序。下面是一个简单的 C# 程序,它可以计算指定目录下所有源代码文件的总行数。
using System;
using System.IO;
namespace CountLines
{
class Program
{
static void Main(string[] args)
{
string rootPath = @"C:\Users\YourUserName\Documents\Code\"; // 指定要计算的目录
long totalLines = 0;
foreach (var filePath in Directory.GetFiles(rootPath, "*.cs", SearchOption.AllDirectories))
{
long fileLines = 0;
using (var reader = new StreamReader(filePath))
{
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (string.IsNullOrWhiteSpace(line)) // 跳过空白行
{
continue;
}
if (IsCommentLine(line)) // 跳过注释行
{
continue;
}
fileLines++;
}
}
Console.WriteLine($"File \"{filePath}\" contains {fileLines:n0} lines.");
totalLines += fileLines;
}
Console.WriteLine($"Total lines: {totalLines:n0}");
Console.ReadKey();
}
static bool IsCommentLine(string line)
{
line = line.Trim();
if (line.StartsWith("//"))
{
return true;
}
if (line.StartsWith("/*") && line.EndsWith("*/"))
{
return true;
}
return false;
}
}
}
rootPath
和一个变量 totalLines
,用于存储总行数。Directory.GetFiles
方法获取指定目录下所有符合条件(以 .cs
结尾)的源代码文件路径。运行上面的代码后,我们会看到在控制台上依次显示出每个符合条件的源代码文件的行数和总行数,示例:
File "C:\Users\YourUserName\Documents\Code\Program.cs" contains 51 lines.
File "C:\Users\YourUserName\Documents\Code\FileUtils.cs" contains 72 lines.
File "C:\Users\YourUserName\Documents\Code\DataAccess\SqlServerDataProvider.cs" contains 516 lines.
File "C:\Users\YourUserName\Documents\Code\DataAccess\MySqlDataProvider.cs" contains 324 lines.
Total lines: 963
通过本文的介绍,我们学会了使用 C# 编写一个简单的程序来计算代码文件的总行数。在实际开发中,有时候对于代码行数的计算可能还需要对特定的代码区域进行排除,这需要根据实际情况进行修改程序。