package cn.lxm.attendance.common.utils;
import java.io.*;
/**
* @author lxm
* @version 1.1
* @date 2019/12/5 0005 13:49
*/
public class ScanCode {
// 代码总行数
private static long codeCount = 0;
public static void main(String[] args) {
// 需要扫描的路径
File file = new File("C:\\onw-project\\branch\\2.12");
// 列出file文件列下所有的文件,这些File,可能是文件夹也可能是文件
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
File in = files[i];
if (in.isFile()) {
isF(file);
} else if (in.isDirectory()) {
isD(in);
}
}
}
// 文件夹的处理
private static void isD(File file){
System.out.println("正在扫描的文件= " + file.getName());
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File f :files) {
if (f.isDirectory()) {
isD(f);
} else {
isF(f);
}
}
} else {
isF(file);
}
}
// 文件的处理
private static void isF(File file) {
System.out.println("正在解析的文件 = " + file.getName());
boolean contains = file.getName().contains(".java");
// 只扫描文件名为.java的文件
if (contains) {
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
// 读取buffer中的行数
long count = bufferedReader.lines().count();
codeCount += count;
System.out.println("总代码行数 = " + codeCount);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}