This article is updated to RTM by Patrick Wright.
Introduction
This utility is for counting number of code lines in a Visual Studio Project. it returns the number of code lines and file names which are in the project folders. Actually, you can use this utility for any kind of text file to count the number of lines. This is C# Class file, so you can easily call it in any Web or Windows application. I programmed a simple web application, which shows the number of code line and file names in a web datagrid.
Do not forget to change.
String[] myDirectoryArray
This array contains the folder names in which my project files reside. Moreover, you can also increase the number of file types if you change String[] myFileArray.
Example
using System;
using System.Collections;
using System.IO;
namespace LineCount
{
/// <summary>
/// Application: It counts code lines in the VS.NET Project
/// Author: Levent Camlibel
/// Date: July 26, 2001
/// </summary>
public class DBLineCount
{
// FileNames holds the names of files in the project directories
protected ArrayList FileNames = new ArrayList(200);
public DBLineCount()
{
}
/// <summary>
/// It returns filenames in the project
/// </summary>
public ArrayList FilesInProject
{
get { return FileNames; }
}
/// <summary>
/// This function returns the count of code lines
/// </summary>
/// <returns></returns>
public int GetLineCount()
{
int LineCount = 0;
// This array holds file types, you can add more file types if you want
String[] myFileArray = new String[7] { "*.cs", "*.aspx", "*.ascx", "*.xml", "*.asax", "*.config", "*.js" };
// This array holds directories where your project files reside
String[] myDirectoryArray = new String[2] { "c:\\inetpub\\wwwroot\\supplynet\\", "d:\\Net Projects\\SpNetComponents\\" };
// Loop through directories
foreach (String sd in myDirectoryArray)
{
DirectoryInfo dir = new DirectoryInfo(sd);
// Loop through file types
foreach (String sFileType in myFileArray)
{
// Loop through files
foreach (FileInfo file in dir.GetFiles(sFileType))
{
// Add the file name to FileNames ArrayList
FileNames.Add(file.FullName);
// Open files for streamreader
StreamReader sr = File.OpenText(file.FullName);
// Loop until the end
while (sr.ReadLine() != null)
{
LineCount++;
}
// Close the streamreader
sr.Close();
}
}
}
return LineCount;
}
}
}