Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Skrev en liten klasse for en stund siden, som gjør akkurat dette. Du skriver f.eks:

 

java LineCounter javaprosjekt/

 

hvor javaprosjekt er en mappe som inneholder .java filer i hierarkiet. programmet går rekursivt igjennom hele shiten og teller alle linjer med javakode.

 

enjoy.

 


import java.io.File;
import java.io.RandomAccessFile;

/*
* Created on Oct 10, 2004
*/

/**
* @author krigun
*
* This program counts the number of lines of code in a Project. It only counts
* lines of code in files with .java extension, and its recursive. 
* 
*/
public class LineCounter
{
   private long counter;
   private long fileCounter;
   private long directoryCounter;
   private RandomAccessFile raf;
   
   public LineCounter(File folder)
   {
       counter = 0;
       fileCounter = 0;
       directoryCounter = 0;
       traverse( folder );
       System.out.println("Number of lines: " + counter );
       System.out.println("Number of files: " + fileCounter );
       System.out.println("Number of directories: " + directoryCounter );
   }
   
   public void traverse( File file )
   {
       if( file.isDirectory() )
       {
           System.out.println(file.getAbsolutePath());
           directoryCounter++;
           File[] files = file.listFiles();
           for( int i = 0; i < files.length; i++ )
               traverse( files[i] );
       }
       else
       {
 //if( file.getName().endsWith(".java") || file.getName().endsWith(".jsp") || file.getName().endsWith(".xml"))
 	if( file.getName().endsWith(".java") )
   countLines( file );
       }
   }
   
   public void countLines( File file )
   {
       try
       {
           raf = new RandomAccessFile( file, "r");
           fileCounter++;
           while( raf.readLine() != null )
               counter++;
           
           raf.close();
       }
       catch(Exception ex)
       {
           ex.printStackTrace();
       }
   }
   
   public static void main(String[] args)
   {
       if( args.length == 0 )
       {
           System.out.println("Usage: \njava LineCounter <path_to_folder>");
           System.exit(0);
       }
       else
       	new LineCounter( new File(args[0]) );
 //new LineCounter( new File("./") );
   }
}

Endret av krigun
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...