import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public abstract class Scan {
public static List<String> getClassName(String packageName) {
List<String> classNames = new ArrayList<String>();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
try {
//正则表达式表示匹配所有"."符号
String path = packageName.replaceAll("\\.", "/");
URL url = loader.getResource(path);
File urlFile = new File(url.toURI());
File[] files = urlFile.listFiles();
for (File file : files){
getClassName(packageName, file, classNames);
}
} catch (URISyntaxException e) {
e.printStackTrace();
}
return classNames;
}
private static void getClassName(String packageName, File file, List<String> list) {
if (file.isFile()) {
//把扩展名给去掉
list.add(packageName + "."+ file.getName().replace(".class", ""));
} else {
File[] files = file.listFiles();
String tmPackageName = packageName + "." + file.getName();
for (File f : files) {
//使用递归
getClassName(tmPackageName, f, list);
}
}
}
public static void main(String[] args) {
List<String> list = Scan.getClassName("test.springTimer");
for (String name : list) {
System.out.println(name);
}
}
}
扫描目录下所有文件
最新推荐文章于 2022-10-16 19:33:23 发布