namespace
FileAndFolderList
... {
using System;
using System.Collections;
using System.IO;
using System.Windows.Forms;
internal class FileAndFolderList
...{
// Methods
public FileAndFolderList()
...{
this.fileList = new ArrayList();
this.lineCountList = new ArrayList();
this.sum = 0;
}
private void Count()
...{
int num1 = 0;
IEnumerator enumerator1 = this.fileList.GetEnumerator();
while (enumerator1.MoveNext())
...{
num1 = this.CountFileLines(enumerator1.Current.ToString());
this.sum += num1;
this.lineCountList.Add(num1);
}
}
private int CountFileLines(string sourceFilePath)
...{
string text1;
int num1 = 0;
StreamReader reader1 = new StreamReader(sourceFilePath);
while ((text1 = reader1.ReadLine()) != null)
...{
if (text1.Trim() == "")
...{
continue;
}
num1++;
}
return num1;
}
private static void DeleteErrLogFile()
...{
string text1 = Application.StartupPath + @"ErrorLog.Text";
if (File.Exists(text1))
...{
File.Delete(text1);
}
}
private void Enumerate(DirectoryInfo diStart, ArrayList arrfileExtension)
...{
try
...{
FileSystemInfo[] infoArray1 = diStart.GetFileSystemInfos();
for (int num1 = 0; num1 < infoArray1.Length; num1++)
...{
FileSystemInfo info1 = infoArray1[num1];
if (info1.GetType() == typeof(DirectoryInfo))
...{
this.Enumerate((DirectoryInfo)info1, arrfileExtension);
}
if (info1.GetType() == typeof(FileInfo))
...{
IEnumerator enumerator1 = arrfileExtension.GetEnumerator();
while (enumerator1.MoveNext())
...{
if (info1.Extension.ToLower() != enumerator1.Current.ToString().ToLower())
...{
continue;
}
this.fileList.Add(info1.FullName);
}
}
}
}
catch (Exception exception1)
...{
FileAndFolderList.WriteErrLog(exception1.Message);
}
}
[STAThread]
private static void Main(string[] args)
...{
//放置工程源代码的路径
DirectoryInfo info1 = new DirectoryInfo(Directory.GetParent(Directory.GetParent(Application.StartupPath).FullName).FullName);
FileAndFolderList list1 = new FileAndFolderList();
ArrayList list2 = new ArrayList();
//项目文件后缀名
list2.Add(".cs");
list1.Enumerate(info1, list2);
Console.WriteLine("Get File List OK!");
Console.WriteLine("Total target Files = " + list1.fileList.Count.ToString());
Console.WriteLine("Waiting for counting...nnn");
list1.Count();
FileAndFolderList.PrintValues(list1.fileList);
FileAndFolderList.PrintValues(list1.lineCountList);
Console.WriteLine("n");
Console.WriteLine("Get s Line Count OK!");
Console.WriteLine("Total lines Count = " + list1.sum.ToString());
Console.WriteLine("Press enter to exit!");
Console.ReadLine();
}
public static void PrintValues(IEnumerable myList)
...{
IEnumerator enumerator1 = myList.GetEnumerator();
while (enumerator1.MoveNext())
...{
Console.Write("t{0}", enumerator1.Current);
}
}
private static void WriteErrLog(string msg)
...{
string text1 = Application.StartupPath + @"ErrorLog.Text";
StreamWriter writer1 = new StreamWriter(text1, true);
writer1.WriteLine(DateTime.Now.ToLongDateString() + "t" + msg);
writer1.Close();
}
// Fields
private ArrayList fileList;
private ArrayList lineCountList;
private int sum;
}
}
... {
using System;
using System.Collections;
using System.IO;
using System.Windows.Forms;
internal class FileAndFolderList
...{
// Methods
public FileAndFolderList()
...{
this.fileList = new ArrayList();
this.lineCountList = new ArrayList();
this.sum = 0;
}
private void Count()
...{
int num1 = 0;
IEnumerator enumerator1 = this.fileList.GetEnumerator();
while (enumerator1.MoveNext())
...{
num1 = this.CountFileLines(enumerator1.Current.ToString());
this.sum += num1;
this.lineCountList.Add(num1);
}
}
private int CountFileLines(string sourceFilePath)
...{
string text1;
int num1 = 0;
StreamReader reader1 = new StreamReader(sourceFilePath);
while ((text1 = reader1.ReadLine()) != null)
...{
if (text1.Trim() == "")
...{
continue;
}
num1++;
}
return num1;
}
private static void DeleteErrLogFile()
...{
string text1 = Application.StartupPath + @"ErrorLog.Text";
if (File.Exists(text1))
...{
File.Delete(text1);
}
}
private void Enumerate(DirectoryInfo diStart, ArrayList arrfileExtension)
...{
try
...{
FileSystemInfo[] infoArray1 = diStart.GetFileSystemInfos();
for (int num1 = 0; num1 < infoArray1.Length; num1++)
...{
FileSystemInfo info1 = infoArray1[num1];
if (info1.GetType() == typeof(DirectoryInfo))
...{
this.Enumerate((DirectoryInfo)info1, arrfileExtension);
}
if (info1.GetType() == typeof(FileInfo))
...{
IEnumerator enumerator1 = arrfileExtension.GetEnumerator();
while (enumerator1.MoveNext())
...{
if (info1.Extension.ToLower() != enumerator1.Current.ToString().ToLower())
...{
continue;
}
this.fileList.Add(info1.FullName);
}
}
}
}
catch (Exception exception1)
...{
FileAndFolderList.WriteErrLog(exception1.Message);
}
}
[STAThread]
private static void Main(string[] args)
...{
//放置工程源代码的路径
DirectoryInfo info1 = new DirectoryInfo(Directory.GetParent(Directory.GetParent(Application.StartupPath).FullName).FullName);
FileAndFolderList list1 = new FileAndFolderList();
ArrayList list2 = new ArrayList();
//项目文件后缀名
list2.Add(".cs");
list1.Enumerate(info1, list2);
Console.WriteLine("Get File List OK!");
Console.WriteLine("Total target Files = " + list1.fileList.Count.ToString());
Console.WriteLine("Waiting for counting...nnn");
list1.Count();
FileAndFolderList.PrintValues(list1.fileList);
FileAndFolderList.PrintValues(list1.lineCountList);
Console.WriteLine("n");
Console.WriteLine("Get s Line Count OK!");
Console.WriteLine("Total lines Count = " + list1.sum.ToString());
Console.WriteLine("Press enter to exit!");
Console.ReadLine();
}
public static void PrintValues(IEnumerable myList)
...{
IEnumerator enumerator1 = myList.GetEnumerator();
while (enumerator1.MoveNext())
...{
Console.Write("t{0}", enumerator1.Current);
}
}
private static void WriteErrLog(string msg)
...{
string text1 = Application.StartupPath + @"ErrorLog.Text";
StreamWriter writer1 = new StreamWriter(text1, true);
writer1.WriteLine(DateTime.Now.ToLongDateString() + "t" + msg);
writer1.Close();
}
// Fields
private ArrayList fileList;
private ArrayList lineCountList;
private int sum;
}
}