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();
}
}
}
}