namespace FileAndFolderList ... {usingSystem;usingSystem.Collections;usingSystem.IO;usingSystem.Windows.Forms;internalclassFileAndFolderList...{//MethodspublicFileAndFolderList()...{this.fileList=newArrayList();this.lineCountList=newArrayList();this.sum=0;}privatevoidCount()...{intnum1=0;IEnumeratorenumerator1=this.fileList.GetEnumerator();while(enumerator1.MoveNext())...{num1=this.CountFileLines(enumerator1.Current.ToString());this.sum+=num1;this.lineCountList.Add(num1);}}privateintCountFileLines(stringsourceFilePath)...{stringtext1;intnum1=0;StreamReaderreader1=newStreamReader(sourceFilePath);while((text1=reader1.ReadLine())!=null)...{if(text1.Trim()=="")...{continue;}num1++;}returnnum1;}privatestaticvoidDeleteErrLogFile()...{stringtext1=Application.StartupPath+@"ErrorLog.Text";if(File.Exists(text1))...{File.Delete(text1);}}privatevoidEnumerate(DirectoryInfodiStart,ArrayListarrfileExtension)...{try...{FileSystemInfo[]infoArray1=diStart.GetFileSystemInfos();for(intnum1=0;num1<infoArray1.Length;num1++)...{FileSystemInfoinfo1=infoArray1[num1];if(info1.GetType()==typeof(DirectoryInfo))...{this.Enumerate((DirectoryInfo)info1,arrfileExtension);}if(info1.GetType()==typeof(FileInfo))...{IEnumeratorenumerator1=arrfileExtension.GetEnumerator();while(enumerator1.MoveNext())...{if(info1.Extension.ToLower()!=enumerator1.Current.ToString().ToLower())...{continue;}this.fileList.Add(info1.FullName);}}}}catch(Exceptionexception1)...{FileAndFolderList.WriteErrLog(exception1.Message);}}[STAThread]privatestaticvoidMain(string[]args)...{//放置工程源代码的路径DirectoryInfoinfo1=newDirectoryInfo(Directory.GetParent(Directory.GetParent(Application.StartupPath).FullName).FullName);FileAndFolderListlist1=newFileAndFolderList();ArrayListlist2=newArrayList();//项目文件后缀名list2.Add(".cs");list1.Enumerate(info1,list2);Console.WriteLine("GetFileListOK!");Console.WriteLine("TotaltargetFiles="+list1.fileList.Count.ToString());Console.WriteLine("Waitingforcounting...nnn");list1.Count();FileAndFolderList.PrintValues(list1.fileList);FileAndFolderList.PrintValues(list1.lineCountList);Console.WriteLine("n");Console.WriteLine("GetsLineCountOK!");Console.WriteLine("TotallinesCount="+list1.sum.ToString());Console.WriteLine("Pressentertoexit!");Console.ReadLine();}publicstaticvoidPrintValues(IEnumerablemyList)...{IEnumeratorenumerator1=myList.GetEnumerator();while(enumerator1.MoveNext())...{Console.Write("t{0}",enumerator1.Current);}}privatestaticvoidWriteErrLog(stringmsg)...{stringtext1=Application.StartupPath+@"ErrorLog.Text";StreamWriterwriter1=newStreamWriter(text1,true);writer1.WriteLine(DateTime.Now.ToLongDateString()+"t"+msg);writer1.Close();}//FieldsprivateArrayListfileList;privateArrayListlineCountList;privateintsum;}}