📜  c# 计算行数 - C# (1)

📅  最后修改于: 2023-12-03 15:13:52.669000             🧑  作者: Mango

C# 计算行数

当我们在开发一个大型的项目时,会遇到很多的代码文件,这些代码文件里面可能会有成千上万行代码。在这个时候,我们可能会需要计算一下我们代码文件的总行数,以帮助我们更好的管理和维护代码。在本文中,我们将介绍如何使用 C# 编写一个程序来计算行数。

实现思路

我们需要做的是遍历指定的目录,找到所有的源代码文件,然后对每个文件进行逐行读取,计算行数。具体的实现思路如下:

  1. 遍历指定目录下的所有文件,找出源代码文件。
  2. 对每个源代码文件进行逐行读取,跳过空行和注释行,统计非空白代码行数。
  3. 将每个源代码文件的行数累加起来,得到总行数。
实现代码

经过上面的思路分析,我们可以开始编写程序。下面是一个简单的 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# 编写一个简单的程序来计算代码文件的总行数。在实际开发中,有时候对于代码行数的计算可能还需要对特定的代码区域进行排除,这需要根据实际情况进行修改程序。