统计项目源代码文件的行数

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;   
    }
   
}
  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值